1,新增部分图片
2,更新考勤模块UI 3,更新电子钥匙模块UI 4,更新密码模块UI 5,更新卡、指纹、遥控模块UI 6,更新授权管理员模块UI 7,更新锁设置模块UI 9,新增拥有的锁界面布局
This commit is contained in:
parent
a01d4f6cad
commit
ad0d4ba38e
BIN
star_lock/images/icon_bar_tips.png
Normal file
BIN
star_lock/images/icon_bar_tips.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
BIN
star_lock/images/icon_card.png
Normal file
BIN
star_lock/images/icon_card.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.3 KiB |
BIN
star_lock/images/icon_electronicKey_admin.png
Normal file
BIN
star_lock/images/icon_electronicKey_admin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
star_lock/images/icon_send_success.png
Normal file
BIN
star_lock/images/icon_send_success.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.9 KiB |
BIN
star_lock/images/icon_tips_Q.png
Normal file
BIN
star_lock/images/icon_tips_Q.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
@ -137,6 +137,8 @@
|
|||||||
"electricQuantity":"Electric Quantity",
|
"electricQuantity":"Electric Quantity",
|
||||||
"lockName":"Lock Name",
|
"lockName":"Lock Name",
|
||||||
"lockGrouping":"Lock Grouping",
|
"lockGrouping":"Lock Grouping",
|
||||||
|
"selectGroup":"Selective grouping",
|
||||||
|
"createNewGroup":"Create a new group",
|
||||||
"adminOpenLockPassword":"Admin Open Lock Password",
|
"adminOpenLockPassword":"Admin Open Lock Password",
|
||||||
"update":"Update",
|
"update":"Update",
|
||||||
"updateElectricQuantityTip":"The battery information can be updated remotely via the gateway or next to the lock via Bluetooth on the phone\n",
|
"updateElectricQuantityTip":"The battery information can be updated remotely via the gateway or next to the lock via Bluetooth on the phone\n",
|
||||||
@ -170,7 +172,8 @@
|
|||||||
"high":"High",
|
"high":"High",
|
||||||
"higher":"Higher",
|
"higher":"Higher",
|
||||||
"burglarAlarmTip":"After opening, an alarm sound will be issued when the lock is picked",
|
"burglarAlarmTip":"After opening, an alarm sound will be issued when the lock is picked",
|
||||||
"resetButtonTip":"After opening, you can re-add with APP by long pressing the reset key on the lock. After closing, the reset key is invalid, and the lock can be re-added only after being deleted by app",
|
"resetButtonTip1":"After opening, you can re-add with APP by long pressing the reset key on the lock.",
|
||||||
|
"resetButtonTip2":"After closing, the reset key is invalid, and the lock can be re-added only after being deleted by app",
|
||||||
"calibrationTime":"Calibration Time",
|
"calibrationTime":"Calibration Time",
|
||||||
"setTheDSTMode":"Set The DST Mode",
|
"setTheDSTMode":"Set The DST Mode",
|
||||||
"diagnoseTip":"Diagnosis is to read the configuration information inside the lock and upload it so that the staff can analyze the cause of the failure",
|
"diagnoseTip":"Diagnosis is to read the configuration information inside the lock and upload it so that the staff can analyze the cause of the failure",
|
||||||
@ -201,6 +204,7 @@
|
|||||||
"pushNotification":"Push Notification",
|
"pushNotification":"Push Notification",
|
||||||
"lockUserManagement":"Lock User Management",
|
"lockUserManagement":"Lock User Management",
|
||||||
"aboutToExpire":"About to expire",
|
"aboutToExpire":"About to expire",
|
||||||
|
"changeName":"Change name",
|
||||||
"authorizedAdmin":"Authorized Admin",
|
"authorizedAdmin":"Authorized Admin",
|
||||||
"addAuthorizedAdmin":"Adding an Authorized Administrator",
|
"addAuthorizedAdmin":"Adding an Authorized Administrator",
|
||||||
"lockGroup":"Lock Group",
|
"lockGroup":"Lock Group",
|
||||||
|
|||||||
@ -137,6 +137,8 @@
|
|||||||
"electricQuantity":"electricQuantity",
|
"electricQuantity":"electricQuantity",
|
||||||
"lockName":"lockName",
|
"lockName":"lockName",
|
||||||
"lockGrouping":"lockGrouping",
|
"lockGrouping":"lockGrouping",
|
||||||
|
"selectGroup":"selectGroup",
|
||||||
|
"createNewGroup":"createNewGroup",
|
||||||
"adminOpenLockPassword":"adminOpenLockPassword",
|
"adminOpenLockPassword":"adminOpenLockPassword",
|
||||||
"update":"update",
|
"update":"update",
|
||||||
"updateElectricQuantityTip":"updateElectricQuantityTip",
|
"updateElectricQuantityTip":"updateElectricQuantityTip",
|
||||||
@ -170,7 +172,8 @@
|
|||||||
"high":"high",
|
"high":"high",
|
||||||
"higher":"higher",
|
"higher":"higher",
|
||||||
"burglarAlarmTip":"burglarAlarmTip",
|
"burglarAlarmTip":"burglarAlarmTip",
|
||||||
"resetButtonTip":"resetButtonTip",
|
"resetButtonTip1":"resetButtonTip1",
|
||||||
|
"resetButtonTip2":"resetButtonTip2",
|
||||||
"calibrationTime":"calibrationTime",
|
"calibrationTime":"calibrationTime",
|
||||||
"setTheDSTMode":"setTheDSTMode",
|
"setTheDSTMode":"setTheDSTMode",
|
||||||
"diagnoseTip":"diagnoseTip",
|
"diagnoseTip":"diagnoseTip",
|
||||||
@ -243,6 +246,7 @@
|
|||||||
"problemThree":"problemThree",
|
"problemThree":"problemThree",
|
||||||
"pleaseEnterYourAnswer":"pleaseEnterYourAnswer",
|
"pleaseEnterYourAnswer":"pleaseEnterYourAnswer",
|
||||||
"aboutToExpire":"aboutToExpire",
|
"aboutToExpire":"aboutToExpire",
|
||||||
|
"changeName":"changeName",
|
||||||
|
|
||||||
"designation": "designation",
|
"designation": "designation",
|
||||||
"state": "state",
|
"state": "state",
|
||||||
|
|||||||
@ -137,6 +137,8 @@
|
|||||||
"electricQuantity":"电量",
|
"electricQuantity":"电量",
|
||||||
"lockName":"名称",
|
"lockName":"名称",
|
||||||
"lockGrouping":"锁分组",
|
"lockGrouping":"锁分组",
|
||||||
|
"selectGroup":"选择分组",
|
||||||
|
"createNewGroup":"创建新分组",
|
||||||
"adminOpenLockPassword":"管理员开锁密码",
|
"adminOpenLockPassword":"管理员开锁密码",
|
||||||
"update":"更新",
|
"update":"更新",
|
||||||
"updateElectricQuantityTip":"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
|
"updateElectricQuantityTip":"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
|
||||||
@ -170,7 +172,8 @@
|
|||||||
"higher":"较高",
|
"higher":"较高",
|
||||||
"high":"高",
|
"high":"高",
|
||||||
"burglarAlarmTip":"开启后,锁被撬动时,会发出报警声",
|
"burglarAlarmTip":"开启后,锁被撬动时,会发出报警声",
|
||||||
"resetButtonTip":"开启后,可通过长按锁上的重置键来用APP重新添加\\n关闭后,重置键无效,锁要通过app删除后才能重新添加",
|
"resetButtonTip1":"开启后,可通过长按锁上的重置键来用APP重新添加",
|
||||||
|
"resetButtonTip2":"关闭后,重置键无效,锁要通过app删除后才能重新添加",
|
||||||
"calibrationTime":"校准时间",
|
"calibrationTime":"校准时间",
|
||||||
"setTheDSTMode":"夏令时模式设置",
|
"setTheDSTMode":"夏令时模式设置",
|
||||||
"diagnoseTip":"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
|
"diagnoseTip":"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
|
||||||
@ -243,6 +246,7 @@
|
|||||||
"problemThree":"问题三",
|
"problemThree":"问题三",
|
||||||
"pleaseEnterYourAnswer":"请输入你的答案",
|
"pleaseEnterYourAnswer":"请输入你的答案",
|
||||||
"aboutToExpire":"即将到期",
|
"aboutToExpire":"即将到期",
|
||||||
|
"changeName":"修改名称",
|
||||||
|
|
||||||
"designation": "名称",
|
"designation": "名称",
|
||||||
"state": "状态",
|
"state": "状态",
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart';
|
import 'package:star_lock/mine/minePersonInfo/minePersonInfoEmail/minePersonInfoEmail_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart';
|
import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdministrator_page.dart';
|
||||||
|
import 'package:star_lock/mine/mineSet/lockUserManage/ownedKeyList_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.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/lockUserManage/lockUserManageList_page.dart';
|
||||||
import 'package:star_lock/mine/mineSet/mineSet_page.dart';
|
import 'package:star_lock/mine/mineSet/mineSet_page.dart';
|
||||||
@ -259,6 +259,7 @@ abstract class Routers {
|
|||||||
static const selectGetewayListPage = '/selectGetewayListPage'; //选择网关
|
static const selectGetewayListPage = '/selectGetewayListPage'; //选择网关
|
||||||
static const addAuthorizedAdministratorPage =
|
static const addAuthorizedAdministratorPage =
|
||||||
'/addAuthorizedAdministratorPage'; //添加授权管理员
|
'/addAuthorizedAdministratorPage'; //添加授权管理员
|
||||||
|
static const ownedKeyListPage = '/ownedKeyListPage'; //拥有的钥匙
|
||||||
|
|
||||||
static const starLockLoginPage = '/StarLockLoginPage'; // 登录
|
static const starLockLoginPage = '/StarLockLoginPage'; // 登录
|
||||||
static const starLockRegisterPage = '/StarLockRegisterPage'; // 注册
|
static const starLockRegisterPage = '/StarLockRegisterPage'; // 注册
|
||||||
@ -687,6 +688,8 @@ abstract class AppRouters {
|
|||||||
page: () => const MinePersonInfoEditEmailPage()),
|
page: () => const MinePersonInfoEditEmailPage()),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: Routers.addAuthorizedAdministratorPage,
|
name: Routers.addAuthorizedAdministratorPage,
|
||||||
page: () => const AddAuthorizedAdministratorPage())
|
page: () => const AddAuthorizedAdministratorPage()),
|
||||||
|
GetPage(
|
||||||
|
name: Routers.ownedKeyListPage, page: () => const OwnedKeyListPage())
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -120,4 +120,5 @@ class AppColors {
|
|||||||
static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //占位字体颜色
|
static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //占位字体颜色
|
||||||
static const greyBackgroundColor = Color.fromRGBO(240, 240, 240, 1); //灰色背景色
|
static const greyBackgroundColor = Color.fromRGBO(240, 240, 240, 1); //灰色背景色
|
||||||
static const btnDisableColor = Color.fromRGBO(178, 178, 178, 1); //按钮不可用灰色
|
static const btnDisableColor = Color.fromRGBO(178, 178, 178, 1); //按钮不可用灰色
|
||||||
|
static const toBeReceiveBgColor = Color.fromRGBO(246, 203, 203, 1); //待接收红色背景
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,24 +1,23 @@
|
|||||||
|
|
||||||
|
|
||||||
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:star_lock/app_settings/app_colors.dart';
|
||||||
import 'package:star_lock/translations/trans_lib.dart';
|
import 'package:star_lock/translations/trans_lib.dart';
|
||||||
|
|
||||||
mixin BaseWidget{
|
mixin BaseWidget {
|
||||||
double fs(double value) => value.sp;
|
double fs(double value) => value.sp;
|
||||||
double w(double width) => width.w;
|
double w(double width) => width.w;
|
||||||
double h(double height) => height.h;
|
double h(double height) => height.h;
|
||||||
|
|
||||||
initUI(Widget widget) => ScreenUtilInit(
|
initUI(Widget widget) => ScreenUtilInit(
|
||||||
// designSize: const Size(750, 1334),
|
// designSize: const Size(750, 1334),
|
||||||
designSize: const Size(375, 812),
|
designSize: const Size(375, 812),
|
||||||
minTextAdapt: true,
|
minTextAdapt: true,
|
||||||
splitScreenMode: true,
|
splitScreenMode: true,
|
||||||
builder: (context , child) {
|
builder: (context, child) {
|
||||||
return widget;
|
return widget;
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
///数据为空的视图
|
///数据为空的视图
|
||||||
Widget emptyView() {
|
Widget emptyView() {
|
||||||
@ -32,16 +31,17 @@ mixin BaseWidget{
|
|||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_unHaveData.png',
|
'images/icon_unHaveData.png',
|
||||||
height: 200.w,
|
height: 120.w,
|
||||||
width: 200.w,
|
width: 120.w,
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(top: 10),
|
padding: const EdgeInsets.only(top: 10),
|
||||||
child: Text(TranslationLoader.lanKeys!.noData!.tr, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600)),
|
child: Text(TranslationLoader.lanKeys!.noData!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor)),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
@ -9,18 +9,22 @@ import '../../../electronicKey/sendElectronicKey/sendElectronicKey/sendElectroni
|
|||||||
import '../authorizedAdmin_page.dart';
|
import '../authorizedAdmin_page.dart';
|
||||||
|
|
||||||
class AuthorizedAdminManageTabbar extends StatefulWidget {
|
class AuthorizedAdminManageTabbar extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
|
|
||||||
AuthorizedAdminManageTabbar({Key? key, required this.initialIndex}) : super(key: key);
|
AuthorizedAdminManageTabbar({Key? key, required this.initialIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<AuthorizedAdminManageTabbar> createState() => _AuthorizedAdminManageTabbarState();
|
State<AuthorizedAdminManageTabbar> createState() =>
|
||||||
|
_AuthorizedAdminManageTabbarState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AuthorizedAdminManageTabbarState extends State<AuthorizedAdminManageTabbar> with SingleTickerProviderStateMixin {
|
class _AuthorizedAdminManageTabbarState
|
||||||
|
extends State<AuthorizedAdminManageTabbar>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs= <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, type: "0"),
|
ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, type: "0"),
|
||||||
ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, type: "1"),
|
ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, type: "1"),
|
||||||
];
|
];
|
||||||
@ -29,33 +33,44 @@ class _AuthorizedAdminManageTabbarState extends State<AuthorizedAdminManageTabba
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,19 +78,26 @@ class _AuthorizedAdminManageTabbarState extends State<AuthorizedAdminManageTabba
|
|||||||
return Tab(
|
return Tab(
|
||||||
// text: item.title,
|
// text: item.title,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 1.sw/4,
|
width: 1.sw / 4,
|
||||||
margin: EdgeInsets.all(10.w),
|
margin: EdgeInsets.all(10.w),
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Text(item.title, textAlign: TextAlign.center,),
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => AuthorizedAdminPage(type: item.type,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => AuthorizedAdminPage(
|
||||||
|
type: item.type,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -134,12 +134,17 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
tipStr,
|
tipStr,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.darkGrayTextColor, fontSize: 20.sp),
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName: TranslationLoader.lanKeys!.sender!.tr,
|
btnName: TranslationLoader.lanKeys!.send!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
@ -157,9 +162,8 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.volumeAuthorizationLock!.tr,
|
TranslationLoader.lanKeys!.volumeAuthorizationLock!.tr,
|
||||||
style: TextStyle(
|
style:
|
||||||
color: AppColors.mainColor,
|
TextStyle(color: AppColors.mainColor, fontSize: 24.sp),
|
||||||
fontWeight: FontWeight.w500),
|
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -182,10 +186,9 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
height: 30.h,
|
height: 30.h,
|
||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/main/icon_main_addLock.png',
|
'images/icon_send_success.png',
|
||||||
width: 150.w,
|
width: 150.w,
|
||||||
height: 150.w,
|
height: 150.w,
|
||||||
color: AppColors.mainColor,
|
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 20.h,
|
height: 20.h,
|
||||||
@ -246,7 +249,7 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
Widget getTFWidget(bool isHaveBtn, String tfStr) {
|
Widget getTFWidget(bool isHaveBtn, String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 500.w,
|
width: 300.w,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
@ -260,6 +263,8 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(
|
||||||
|
color: AppColors.placeholderTextColor, fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
@ -270,12 +275,12 @@ class _AuthorizedAdminPageState extends State<AuthorizedAdminPage> {
|
|||||||
),
|
),
|
||||||
isHaveBtn
|
isHaveBtn
|
||||||
? Container(
|
? Container(
|
||||||
width: 50.w,
|
width: 30.w,
|
||||||
height: 50.w,
|
height: 30.w,
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage('images/icon_lock.png'),
|
image: AssetImage('images/icon_addressBook.png'),
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
),
|
),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
|||||||
@ -25,74 +25,74 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
|
|||||||
barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
|
barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
actionsList: [
|
// actionsList: [
|
||||||
TextButton(
|
// TextButton(
|
||||||
child: Text(
|
// child: Text(
|
||||||
TranslationLoader.lanKeys!.reset!.tr,
|
// TranslationLoader.lanKeys!.reset!.tr,
|
||||||
style: const TextStyle(color: Colors.white),
|
// style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
// ),
|
||||||
onPressed: () {},
|
// onPressed: () {},
|
||||||
),
|
// ),
|
||||||
],
|
// ],
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
_searchWidget(),
|
|
||||||
Expanded(child: _buildMainUI()),
|
Expanded(child: _buildMainUI()),
|
||||||
SubmitBtn(
|
SizedBox(
|
||||||
btnName: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
|
height: 20.h,
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(
|
|
||||||
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {
|
|
||||||
Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _searchWidget() {
|
|
||||||
return Container(
|
|
||||||
height: 60.h,
|
|
||||||
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.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,
|
|
||||||
hintStyle: TextStyle(fontSize: 22.sp, height: 3.0),
|
|
||||||
//不需要输入框下划线
|
|
||||||
border: InputBorder.none,
|
|
||||||
//左边图标设置
|
|
||||||
icon: Padding(
|
|
||||||
padding: EdgeInsets.only(
|
|
||||||
top: 20.h, bottom: 20.h, right: 20.w, left: 10.w),
|
|
||||||
child: Image.asset(
|
|
||||||
'images/main/icon_main_search.png',
|
|
||||||
width: 40.w,
|
|
||||||
height: 40.w,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
GestureDetector(
|
||||||
|
child: Container(
|
||||||
|
height: 80.h,
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8.w)),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_btn_add.png',
|
||||||
|
width: 28.w,
|
||||||
|
height: 28.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 6.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.addAuthorizedAdmin!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
|
||||||
|
// SubmitBtn(
|
||||||
|
// btnName: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
|
||||||
|
// onClick: () {
|
||||||
|
// Navigator.pushNamed(context, Routers.authorizedAdminManagePage);
|
||||||
|
// }),
|
||||||
|
SizedBox(
|
||||||
|
height: 64.h,
|
||||||
|
)
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三",
|
return _electronicKeyItem('images/controls_user.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
|
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
|
||||||
});
|
});
|
||||||
@ -104,7 +104,7 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 90.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
@ -117,11 +117,11 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 60.w,
|
||||||
height: 50.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -133,8 +133,23 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
|
|||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 32.sp, fontWeight: FontWeight.w500),
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 8.w,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 4.w, right: 4.w, top: 2.w, bottom: 2.w),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: AppColors.toBeReceiveBgColor,
|
||||||
|
borderRadius: BorderRadius.circular(5.0),
|
||||||
|
),
|
||||||
|
child: Text(
|
||||||
|
'待接收',
|
||||||
|
style: TextStyle(color: Colors.red, fontSize: 16.sp),
|
||||||
|
),
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 5.h),
|
SizedBox(height: 5.h),
|
||||||
@ -145,7 +160,8 @@ class _AuthorizedAdminListPageState extends State<AuthorizedAdminListPage> {
|
|||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15 永久",
|
"2023.6.21 11.15 永久",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp, fontWeight: FontWeight.w500),
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -8,18 +8,22 @@ import '../../../../../translations/trans_lib.dart';
|
|||||||
import '../volumeAuthorizationLock_page.dart';
|
import '../volumeAuthorizationLock_page.dart';
|
||||||
|
|
||||||
class VolumeAuthorizationLockManageTabbar extends StatefulWidget {
|
class VolumeAuthorizationLockManageTabbar extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
|
|
||||||
VolumeAuthorizationLockManageTabbar({Key? key, required this.initialIndex}) : super(key: key);
|
VolumeAuthorizationLockManageTabbar({Key? key, required this.initialIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<VolumeAuthorizationLockManageTabbar> createState() => _VolumeAuthorizationLockManageTabbarState();
|
State<VolumeAuthorizationLockManageTabbar> createState() =>
|
||||||
|
_VolumeAuthorizationLockManageTabbarState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _VolumeAuthorizationLockManageTabbarState extends State<VolumeAuthorizationLockManageTabbar> with SingleTickerProviderStateMixin {
|
class _VolumeAuthorizationLockManageTabbarState
|
||||||
|
extends State<VolumeAuthorizationLockManageTabbar>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs= <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, type: "0"),
|
ItemView(title: TranslationLoader.lanKeys!.permanent!.tr, type: "0"),
|
||||||
ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, type: "1"),
|
ItemView(title: TranslationLoader.lanKeys!.timeLimit!.tr, type: "1"),
|
||||||
];
|
];
|
||||||
@ -28,33 +32,44 @@ class _VolumeAuthorizationLockManageTabbarState extends State<VolumeAuthorizatio
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,19 +77,26 @@ class _VolumeAuthorizationLockManageTabbarState extends State<VolumeAuthorizatio
|
|||||||
return Tab(
|
return Tab(
|
||||||
// text: item.title,
|
// text: item.title,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 1.sw/4,
|
width: 1.sw / 4,
|
||||||
margin: EdgeInsets.all(10.w),
|
margin: EdgeInsets.all(10.w),
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Text(item.title, textAlign: TextAlign.center,),
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => VolumeAuthorizationLockPage(type: item.type,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => VolumeAuthorizationLockPage(
|
||||||
|
type: item.type,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,56 +13,92 @@ class CheckingInAddHolidaysPage extends StatefulWidget {
|
|||||||
const CheckingInAddHolidaysPage({Key? key}) : super(key: key);
|
const CheckingInAddHolidaysPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CheckingInAddHolidaysPage> createState() => _CheckingInAddHolidaysPageState();
|
State<CheckingInAddHolidaysPage> createState() =>
|
||||||
|
_CheckingInAddHolidaysPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.addedHoliday!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.addedHoliday!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget("(${TranslationLoader.lanKeys!.mustFillIn!.tr})")),
|
CommonItem(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.startDate!.tr, rightTitle:"(${TranslationLoader.lanKeys!.mustFillIn!.tr})", isHaveLine: true, isHaveDirection: false, action: () async {
|
leftTitel: TranslationLoader.lanKeys!.name!.tr,
|
||||||
await showDialog(context: context,
|
rightTitle: "",
|
||||||
builder: (context) {
|
isHaveLine: true,
|
||||||
return ShowCalendar(datePickerMode: DatePickerMode.day, seletAction: (dateTime){
|
isHaveRightWidget: true,
|
||||||
print("111111$dateTime");
|
rightWidget: getTFWidget(
|
||||||
Navigator.of(context).pop(true);
|
"(${TranslationLoader.lanKeys!.mustFillIn!.tr})")),
|
||||||
});
|
CommonItem(
|
||||||
});
|
leftTitel: TranslationLoader.lanKeys!.startDate!.tr,
|
||||||
}),
|
rightTitle: "(${TranslationLoader.lanKeys!.mustFillIn!.tr})",
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.endDate!.tr, rightTitle:"(${TranslationLoader.lanKeys!.mustFillIn!.tr})", isHaveLine: true, isHaveDirection: false, action: () async {
|
isHaveLine: true,
|
||||||
await showDialog(context: context,
|
isHaveDirection: false,
|
||||||
builder: (context) {
|
action: () async {
|
||||||
return ShowCalendar(datePickerMode: DatePickerMode.day, seletAction: (dateTime){
|
await showDialog(
|
||||||
Navigator.of(context).pop(true);
|
context: context,
|
||||||
});
|
builder: (context) {
|
||||||
});
|
return ShowCalendar(
|
||||||
}),
|
datePickerMode: DatePickerMode.day,
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.coverDate!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: false, action: () async {
|
seletAction: (dateTime) {
|
||||||
await showDialog(context: context,
|
print("111111$dateTime");
|
||||||
builder: (context) {
|
Navigator.of(context).pop(true);
|
||||||
return ShowCalendar(datePickerMode: DatePickerMode.day, seletAction: (dateTime){
|
});
|
||||||
Navigator.of(context).pop(true);
|
});
|
||||||
});
|
}),
|
||||||
});
|
CommonItem(
|
||||||
}),
|
leftTitel: TranslationLoader.lanKeys!.endDate!.tr,
|
||||||
SizedBox(height: 50.w,),
|
rightTitle: "(${TranslationLoader.lanKeys!.mustFillIn!.tr})",
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
isHaveLine: true,
|
||||||
onClick: (){
|
isHaveDirection: false,
|
||||||
|
action: () async {
|
||||||
}
|
await showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return ShowCalendar(
|
||||||
|
datePickerMode: DatePickerMode.day,
|
||||||
|
seletAction: (dateTime) {
|
||||||
|
Navigator.of(context).pop(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.coverDate!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveDirection: false,
|
||||||
|
action: () async {
|
||||||
|
await showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return ShowCalendar(
|
||||||
|
datePickerMode: DatePickerMode.day,
|
||||||
|
seletAction: (dateTime) {
|
||||||
|
Navigator.of(context).pop(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
SizedBox(
|
||||||
|
height: 50.w,
|
||||||
),
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.sure!.tr,
|
||||||
|
borderRadius: 20.w,
|
||||||
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget getTFWidget(String tfStr){
|
Widget getTFWidget(String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 300.w,
|
width: 300.w,
|
||||||
@ -75,35 +111,39 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
|
|||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
// controller: _controller,
|
// controller: _controller,
|
||||||
autofocus: false,
|
autofocus: false,
|
||||||
textAlign:TextAlign.end,
|
textAlign: TextAlign.end,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 10.w,),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget whetherTheEmployeeHasAKeyWidget(String title, Function action){
|
Widget whetherTheEmployeeHasAKeyWidget(String title, Function action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),
|
Image.asset(
|
||||||
SizedBox(width: 5.w,),
|
'images/icon_round_unSelet.png',
|
||||||
|
width: 40.w,
|
||||||
|
height: 40.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5.w,
|
||||||
|
),
|
||||||
Text(title),
|
Text(title),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -22,20 +21,32 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(haveTitleWidget: true, titleWidget:titleWidget(), haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
GestureDetector(
|
haveTitleWidget: true,
|
||||||
onTap: (){
|
titleWidget: titleWidget(),
|
||||||
Navigator.pushNamed(context, Routers.checkingInSetPage);
|
haveBack: true,
|
||||||
},
|
backgroundColor: AppColors.mainColor,
|
||||||
child: Image.asset('images/main/icon_lockDetail_checkIn_set.png', width: 50.w, height: 50.w,)
|
actionsList: [
|
||||||
),
|
GestureDetector(
|
||||||
SizedBox(width: 30.w,),
|
onTap: () {
|
||||||
],
|
Navigator.pushNamed(context, Routers.checkingInSetPage);
|
||||||
|
},
|
||||||
|
child: Image.asset(
|
||||||
|
'images/main/icon_lockDetail_checkIn_set.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
)),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
topInfo(),
|
topInfo(),
|
||||||
SizedBox(height: 10.h,),
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
middleDayInfo(),
|
middleDayInfo(),
|
||||||
Expanded(child: bottomList())
|
Expanded(child: bottomList())
|
||||||
],
|
],
|
||||||
@ -43,25 +54,35 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget topInfo(){
|
Widget topInfo() {
|
||||||
return Container(
|
return Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
// height: 370.h,
|
// height: 370.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
Image.asset('images/main/icon_checkInRankingListTop.png', width: 145.w, height: 145.w),
|
height: 30.h,
|
||||||
SizedBox(height: 10.h,),
|
),
|
||||||
Text(TranslationLoader.lanKeys!.noAttendanceRecord!.tr, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500)),
|
Image.asset('images/main/icon_checkInRankingListTop.png',
|
||||||
SizedBox(height: 30.h,),
|
width: 120.w, height: 120.w),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
Text(TranslationLoader.lanKeys!.noAttendanceRecord!.tr,
|
||||||
|
style: TextStyle(fontSize: 24.sp)),
|
||||||
|
SizedBox(
|
||||||
|
height: 30.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
// SizedBox(width: 30.w,),
|
// SizedBox(width: 30.w,),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 40.w,),
|
SizedBox(
|
||||||
|
width: 40.w,
|
||||||
|
),
|
||||||
Container(
|
Container(
|
||||||
// width: 150.w,
|
// width: 150.w,
|
||||||
height: 70.h,
|
height: 70.h,
|
||||||
@ -69,20 +90,29 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.dailyCharts!.tr, style: TextStyle(color: AppColors.mainColor)),
|
Text(TranslationLoader.lanKeys!.dailyCharts!.tr,
|
||||||
Container(width: 20.w, height: 2.h, color: AppColors.mainColor)
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor, fontSize: 22.sp)),
|
||||||
|
Container(
|
||||||
|
width: 20.w,
|
||||||
|
height: 2.h,
|
||||||
|
color: AppColors.mainColor)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 40.w,),
|
SizedBox(
|
||||||
Container(
|
width: 40.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
// width: 100.w,
|
// width: 100.w,
|
||||||
height: 70.h,
|
height: 70.h,
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.monthlyLeaderboard!.tr, style: const TextStyle(color: Colors.black)),
|
Text(TranslationLoader.lanKeys!.monthlyLeaderboard!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.black, fontSize: 22.sp)),
|
||||||
Container(width: 20.w, height: 2.h, color: Colors.black)
|
Container(width: 20.w, height: 2.h, color: Colors.black)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -91,19 +121,31 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
),
|
),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await showDialog(context: context,
|
await showDialog(
|
||||||
builder: (context) {
|
context: context,
|
||||||
return ShowCalendar(datePickerMode: DatePickerMode.day, seletAction: (dateTime){
|
builder: (context) {
|
||||||
Navigator.of(context).pop(true);
|
return ShowCalendar(
|
||||||
});
|
datePickerMode: DatePickerMode.day,
|
||||||
});
|
seletAction: (dateTime) {
|
||||||
|
Navigator.of(context).pop(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text("07-12", style: const TextStyle(color: Colors.black),),
|
Text(
|
||||||
Image.asset('images/icon_grayPullDown.png', width: 50.w, height: 30.w,),
|
"07-12",
|
||||||
SizedBox(width: 10.w,),
|
style: TextStyle(color: Colors.black, fontSize: 22.sp),
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_grayPullDown.png',
|
||||||
|
width: 50.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 10.w,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -115,56 +157,60 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget middleDayInfo(){
|
Widget middleDayInfo() {
|
||||||
return Visibility(
|
return Visibility(
|
||||||
visible: true,
|
visible: true,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 80.h,
|
height: 80.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
margin: EdgeInsets.only(left:15.h, right: 15.h, bottom: 10.h),
|
margin: EdgeInsets.only(left: 15.h, right: 15.h, bottom: 10.h),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Column(
|
||||||
// width: 100.w,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
// height: 80.h,
|
children: [
|
||||||
child: Column(
|
SizedBox(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
height: 5.h,
|
||||||
children: [
|
),
|
||||||
SizedBox(height: 5.h,),
|
Text("0",
|
||||||
const Text("0", style: TextStyle(color: Colors.black)),
|
style: TextStyle(color: Colors.black, fontSize: 20.sp)),
|
||||||
Text(TranslationLoader.lanKeys!.beLate!.tr, style: const TextStyle(color: Colors.black)),
|
Text(TranslationLoader.lanKeys!.beLate!.tr,
|
||||||
SizedBox(height: 5.h,),
|
style: TextStyle(color: Colors.black, fontSize: 22.sp)),
|
||||||
],
|
SizedBox(
|
||||||
),
|
height: 5.h,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
Container(
|
Column(
|
||||||
// width: 100.w,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
// height: 80.h,
|
children: [
|
||||||
// color: Colors.red,
|
SizedBox(
|
||||||
child: Column(
|
height: 5.h,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
),
|
||||||
children: [
|
Text("0",
|
||||||
SizedBox(height: 5.h,),
|
style: TextStyle(color: Colors.black, fontSize: 20.sp)),
|
||||||
Text("0", style: TextStyle(color: Colors.black)),
|
Text(TranslationLoader.lanKeys!.leaveEarly!.tr,
|
||||||
Text(TranslationLoader.lanKeys!.leaveEarly!.tr, style: const TextStyle(color: Colors.black)),
|
style: TextStyle(color: Colors.black, fontSize: 22.sp)),
|
||||||
SizedBox(height: 5.h,),
|
SizedBox(
|
||||||
],
|
height: 5.h,
|
||||||
),
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
Container(
|
Column(
|
||||||
// width: 100.w,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
// height: 80.h,
|
children: [
|
||||||
// color: Colors.red,
|
SizedBox(
|
||||||
child: Column(
|
height: 5.h,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
),
|
||||||
children: [
|
Text("0",
|
||||||
SizedBox(height: 5.h,),
|
style: TextStyle(color: Colors.black, fontSize: 20.sp)),
|
||||||
Text("0", style: TextStyle(color: Colors.black)),
|
Text(TranslationLoader.lanKeys!.noCardPunched!.tr,
|
||||||
Text(TranslationLoader.lanKeys!.noCardPunched!.tr, style: const TextStyle(color: Colors.black)),
|
style: TextStyle(color: Colors.black, fontSize: 22.sp)),
|
||||||
SizedBox(height: 5.h,),
|
SizedBox(
|
||||||
],
|
height: 5.h,
|
||||||
),
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -172,76 +218,118 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget bottomList(){
|
Widget bottomList() {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
itemCount:10,
|
itemCount: 10,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return _checkingInListItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){
|
return _checkingInListItem('images/controls_user.png', "张三",
|
||||||
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
Navigator.pushNamed(context, Routers.checkingInDetailPage);
|
Navigator.pushNamed(context, Routers.checkingInDetailPage);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
separatorBuilder: (context, index) {
|
separatorBuilder: (context, index) {
|
||||||
return const Divider(height:1, color: Colors.grey);
|
return const Divider(height: 1, color: AppColors.greyLineColor);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _checkingInListItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){
|
Widget _checkingInListItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
|
String beginTime, String endTime, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 80.h,
|
height: 80.h,
|
||||||
// margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 30.w,),
|
SizedBox(
|
||||||
Text("1", style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ),
|
width: 30.w,
|
||||||
SizedBox(width: 20.w,),
|
),
|
||||||
Container(
|
Text(
|
||||||
width: 60.h, height: 60.h,
|
"1",
|
||||||
decoration: BoxDecoration(
|
style: TextStyle(fontSize: 20.sp),
|
||||||
color: AppColors.mainColor,
|
),
|
||||||
border: Border.all(width: 1, color: AppColors.mainColor),
|
SizedBox(
|
||||||
borderRadius: BorderRadius.circular(30.h),
|
width: 20.w,
|
||||||
),
|
),
|
||||||
padding: EdgeInsets.all(10.w),
|
Image.asset(
|
||||||
child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 40.w, height: 40.w, color: Colors.white,)
|
'images/controls_user.png',
|
||||||
|
width: 40.w,
|
||||||
|
height: 40.w,
|
||||||
|
),
|
||||||
|
// Container(
|
||||||
|
// width: 60.h,
|
||||||
|
// height: 60.h,
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// color: AppColors.mainColor,
|
||||||
|
// border: Border.all(width: 1, color: AppColors.mainColor),
|
||||||
|
// borderRadius: BorderRadius.circular(30.h),
|
||||||
|
// ),
|
||||||
|
// padding: EdgeInsets.all(10.w),
|
||||||
|
// child: Image.asset(
|
||||||
|
// 'images/controls_user.png',
|
||||||
|
// width: 30.w,
|
||||||
|
// height: 30.w,
|
||||||
|
// color: Colors.white,
|
||||||
|
// )),
|
||||||
|
SizedBox(
|
||||||
|
width: 20.w,
|
||||||
),
|
),
|
||||||
SizedBox(width: 20.w,),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ),
|
child: Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
SizedBox(width: 20.h),
|
||||||
Image.asset("images/icon_right.png", width: 50.w, height: 50.w,),
|
Image.asset(
|
||||||
SizedBox(width:20.h),
|
"images/icon_right_grey.png",
|
||||||
|
width: 21.w,
|
||||||
|
height: 21.w,
|
||||||
|
),
|
||||||
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget titleWidget(){
|
Widget titleWidget() {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: (){
|
onTap: () {
|
||||||
showListType();
|
showListType();
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.earlyArrivalList!.tr, style: const TextStyle(color: Colors.white),),
|
Text(
|
||||||
SizedBox(width: 5.w,),
|
TranslationLoader.lanKeys!.earlyArrivalList!.tr,
|
||||||
Image.asset('images/main/icon_lockDetail_checkIn_topTitle.png', width: 30.w, height: 16.w,)
|
style: TextStyle(color: Colors.white, fontSize: 26.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5.w,
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/main/icon_lockDetail_checkIn_topTitle.png',
|
||||||
|
width: 22.w,
|
||||||
|
height: 16.w,
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void showListType(){
|
void showListType() {
|
||||||
var list = [TranslationLoader.lanKeys!.earlyArrivalList!.tr, TranslationLoader.lanKeys!.lateList!.tr, TranslationLoader.lanKeys!.hardWorkingList!.tr];
|
var list = [
|
||||||
|
TranslationLoader.lanKeys!.earlyArrivalList!.tr,
|
||||||
|
TranslationLoader.lanKeys!.lateList!.tr,
|
||||||
|
TranslationLoader.lanKeys!.hardWorkingList!.tr
|
||||||
|
];
|
||||||
ShowBottomSheetTool().showSingleRowPicker(
|
ShowBottomSheetTool().showSingleRowPicker(
|
||||||
//上下文
|
//上下文
|
||||||
context,
|
context,
|
||||||
@ -255,10 +343,6 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
|
|||||||
//adapter: PickerAdapter(),
|
//adapter: PickerAdapter(),
|
||||||
data: list,
|
data: list,
|
||||||
//选择事件的回调
|
//选择事件的回调
|
||||||
clickCallBack: (int index, var str) {
|
clickCallBack: (int index, var str) {});
|
||||||
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,14 +26,14 @@ class _CheckingInSetPageState extends State<CheckingInSetPage> {
|
|||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(
|
appBar: TitleAppBar(
|
||||||
barTitle:
|
barTitle:
|
||||||
"${TranslationLoader.lanKeys!.checkingIn!.tr} ${TranslationLoader.lanKeys!.set!.tr}",
|
"${TranslationLoader.lanKeys!.checkingIn!.tr}${TranslationLoader.lanKeys!.set!.tr}",
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor),
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.company!.tr} ${TranslationLoader.lanKeys!.name!.tr}",
|
"${TranslationLoader.lanKeys!.company!.tr}${TranslationLoader.lanKeys!.name!.tr}",
|
||||||
rightTitle: "深圳市志超科技",
|
rightTitle: "深圳市志超科技",
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
@ -50,7 +50,7 @@ class _CheckingInSetPageState extends State<CheckingInSetPage> {
|
|||||||
}),
|
}),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.work!.tr} ${TranslationLoader.lanKeys!.time!.tr}",
|
"${TranslationLoader.lanKeys!.work!.tr}${TranslationLoader.lanKeys!.time!.tr}",
|
||||||
rightTitle: "9:00 - 18:00",
|
rightTitle: "9:00 - 18:00",
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
@ -59,7 +59,7 @@ class _CheckingInSetPageState extends State<CheckingInSetPage> {
|
|||||||
}),
|
}),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.workday!.tr} ${TranslationLoader.lanKeys!.set!.tr}",
|
"${TranslationLoader.lanKeys!.workday!.tr}${TranslationLoader.lanKeys!.set!.tr}",
|
||||||
rightTitle: "1,2,3,4,5",
|
rightTitle: "1,2,3,4,5",
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
@ -79,7 +79,7 @@ class _CheckingInSetPageState extends State<CheckingInSetPage> {
|
|||||||
),
|
),
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName:
|
btnName:
|
||||||
"${TranslationLoader.lanKeys!.delete!.tr} ${TranslationLoader.lanKeys!.company!.tr}",
|
"${TranslationLoader.lanKeys!.delete!.tr}${TranslationLoader.lanKeys!.company!.tr}",
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
isDelete: true,
|
isDelete: true,
|
||||||
@ -97,7 +97,7 @@ class _CheckingInSetPageState extends State<CheckingInSetPage> {
|
|||||||
builder: (BuildContext context) {
|
builder: (BuildContext context) {
|
||||||
return ShowTFView(
|
return ShowTFView(
|
||||||
title:
|
title:
|
||||||
"${TranslationLoader.lanKeys!.amend!.tr} ${TranslationLoader.lanKeys!.name!.tr}",
|
"${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.name!.tr}",
|
||||||
tipTitle: "",
|
tipTitle: "",
|
||||||
controller: _changeNameController);
|
controller: _changeNameController);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -22,47 +21,82 @@ class _CheckingInAddStaffPageState extends State<CheckingInAddStaffPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle:"${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.staff!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.staff!.tr}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.name!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(TranslationLoader.lanKeys!.pleaseEnter!.tr)),
|
CommonItem(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.punchingMode!.tr, rightTitle:"APP", isHaveLine: false, isHaveDirection: true, action: (){
|
leftTitel: TranslationLoader.lanKeys!.name!.tr,
|
||||||
_showSeletClockInType();
|
rightTitle: "",
|
||||||
}),
|
isHaveLine: true,
|
||||||
SizedBox(height: 10.h,),
|
isHaveRightWidget: true,
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.whetherTheEmployeeHasAKey!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: Row(
|
rightWidget:
|
||||||
children: [
|
getTFWidget(TranslationLoader.lanKeys!.pleaseEnter!.tr)),
|
||||||
whetherTheEmployeeHasAKeyWidget("有", (){
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.punchingMode!.tr,
|
||||||
|
rightTitle: "APP",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
_showSeletClockInType();
|
||||||
}),
|
}),
|
||||||
SizedBox(width: 30.w,),
|
SizedBox(
|
||||||
whetherTheEmployeeHasAKeyWidget("无", (){
|
height: 10.h,
|
||||||
|
),
|
||||||
}),
|
CommonItem(
|
||||||
],
|
leftTitel:
|
||||||
)),
|
TranslationLoader.lanKeys!.whetherTheEmployeeHasAKey!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
|
rightWidget: Row(
|
||||||
|
children: [
|
||||||
|
whetherTheEmployeeHasAKeyWidget("有", () {}),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
whetherTheEmployeeHasAKeyWidget("无", () {}),
|
||||||
|
],
|
||||||
|
)),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible:true,
|
visible: true,
|
||||||
child: CommonItem(leftTitel:TranslationLoader.lanKeys!.accountNumber!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true, rightWidget: getTFWidget(TranslationLoader.lanKeys!.pleaseEnter!.tr)),
|
child: CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.accountNumber!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
|
rightWidget:
|
||||||
|
getTFWidget(TranslationLoader.lanKeys!.pleaseEnter!.tr)),
|
||||||
),
|
),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible:true,
|
visible: true,
|
||||||
child: CommonItem(leftTitel:TranslationLoader.lanKeys!.selectKey!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){
|
child: CommonItem(
|
||||||
_showSeletClockInType();
|
leftTitel: TranslationLoader.lanKeys!.selectKey!.tr,
|
||||||
}),
|
rightTitle: "",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
_showSeletClockInType();
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
SizedBox(height: 50.w,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
height: 50.w,
|
||||||
onClick: (){
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.sure!.tr,
|
||||||
|
borderRadius: 20.w,
|
||||||
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget getTFWidget(String tfStr){
|
Widget getTFWidget(String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 300.w,
|
width: 300.w,
|
||||||
@ -75,26 +109,28 @@ class _CheckingInAddStaffPageState extends State<CheckingInAddStaffPage> {
|
|||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
// controller: _controller,
|
// controller: _controller,
|
||||||
autofocus: false,
|
autofocus: false,
|
||||||
textAlign:TextAlign.end,
|
textAlign: TextAlign.end,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 10.w,),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showSeletClockInType(){
|
void _showSeletClockInType() {
|
||||||
var list = ["15080825640",];
|
var list = [
|
||||||
ShowBottomSheetTool().showSingleRowPicker(
|
"15080825640",
|
||||||
//上下文
|
];
|
||||||
|
ShowBottomSheetTool().showSingleRowPicker(
|
||||||
|
//上下文
|
||||||
context,
|
context,
|
||||||
//默认的索引
|
//默认的索引
|
||||||
normalIndex: 0,
|
normalIndex: 0,
|
||||||
@ -106,25 +142,30 @@ class _CheckingInAddStaffPageState extends State<CheckingInAddStaffPage> {
|
|||||||
//adapter: PickerAdapter(),
|
//adapter: PickerAdapter(),
|
||||||
data: list,
|
data: list,
|
||||||
//选择事件的回调
|
//选择事件的回调
|
||||||
clickCallBack: (int index, var str) {
|
clickCallBack: (int index, var str) {});
|
||||||
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget whetherTheEmployeeHasAKeyWidget(String title, Function action){
|
Widget whetherTheEmployeeHasAKeyWidget(String title, Function action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),
|
Image.asset(
|
||||||
SizedBox(width: 5.w,),
|
'images/icon_round_unSelet.png',
|
||||||
Text(title),
|
width: 26.w,
|
||||||
],
|
height: 26.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_pickers/pickers.dart';
|
import 'package:flutter_pickers/pickers.dart';
|
||||||
import 'package:flutter_pickers/style/default_style.dart';
|
import 'package:flutter_pickers/style/default_style.dart';
|
||||||
@ -19,7 +18,8 @@ class CheckingInSetHolidaysPage extends StatefulWidget {
|
|||||||
const CheckingInSetHolidaysPage({Key? key}) : super(key: key);
|
const CheckingInSetHolidaysPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CheckingInSetHolidaysPage> createState() => _CheckingInSetHolidaysPageState();
|
State<CheckingInSetHolidaysPage> createState() =>
|
||||||
|
_CheckingInSetHolidaysPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
||||||
@ -27,46 +27,63 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(haveTitleWidget: true, titleWidget:titleWidget(), haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
GestureDetector(
|
haveTitleWidget: true,
|
||||||
onTap: (){
|
titleWidget: titleWidget(),
|
||||||
Navigator.pushNamed(context, Routers.checkingInAddHolidaysPage);
|
haveBack: true,
|
||||||
},
|
backgroundColor: AppColors.mainColor,
|
||||||
child: Image.asset('images/icon_add_white.png', width: 50.w, height: 50.w,)
|
actionsList: [
|
||||||
),
|
GestureDetector(
|
||||||
SizedBox(width: 30.w,),
|
onTap: () {
|
||||||
],
|
Navigator.pushNamed(
|
||||||
|
context, Routers.checkingInAddHolidaysPage);
|
||||||
|
},
|
||||||
|
child: Image.asset(
|
||||||
|
'images/icon_add_white.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
)),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
body: ListView.builder(
|
body: ListView.builder(
|
||||||
itemCount:10,
|
itemCount: 10,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return _checkingInListItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){
|
return _checkingInListItem('images/icon_lock.png', "张三",
|
||||||
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
});
|
||||||
}
|
}));
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _checkingInListItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){
|
Widget _checkingInListItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
|
String beginTime, String endTime, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 140.h,
|
height: 140.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
color: const Color(0xFFAFB5D7),
|
color: const Color(0xFFAFB5D7),
|
||||||
width: 100.w,
|
width: 100.w,
|
||||||
height: 140.h,
|
height: 140.h,
|
||||||
child: Center(child: Text("7\n${TranslationLoader.lanKeys!.month!.tr}", textAlign: TextAlign.center, style: TextStyle(fontSize: 32.sp, color: Colors.white),))
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
"7\n${TranslationLoader.lanKeys!.month!.tr}",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(fontSize: 28.sp, color: Colors.white),
|
||||||
|
))),
|
||||||
|
SizedBox(
|
||||||
|
width: 20.w,
|
||||||
),
|
),
|
||||||
SizedBox(width: 30.w,),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@ -76,55 +93,73 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600), ),
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height:10.h),
|
SizedBox(height: 10.h),
|
||||||
Container(
|
Container(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text("${TranslationLoader.lanKeys!.libertyDay!.tr}:2023.6.21 11.15-2023.6.21 11.15", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
"${TranslationLoader.lanKeys!.libertyDay!.tr}:2023.6.21 11.15-2023.6.21 11.15",
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height:5.h),
|
SizedBox(height: 5.h),
|
||||||
Container(
|
Container(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text("${TranslationLoader.lanKeys!.coverDate!.tr}:2023.6.21 11.15", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
"${TranslationLoader.lanKeys!.coverDate!.tr}:2023.6.21 11.15",
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget titleWidget(){
|
Widget titleWidget() {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: (){
|
onTap: () {
|
||||||
showListType();
|
showListType();
|
||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text("${DateTime.now().year}${TranslationLoader.lanKeys!.year!.tr}", style: const TextStyle(color: Colors.white),),
|
Text(
|
||||||
SizedBox(width: 5.w,),
|
"${DateTime.now().year}${TranslationLoader.lanKeys!.year!.tr}",
|
||||||
Image.asset('images/main/icon_lockDetail_checkIn_topTitle.png', width: 30.w, height: 16.w,)
|
style: TextStyle(color: Colors.white, fontSize: 26.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 5.w,
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/main/icon_lockDetail_checkIn_topTitle.png',
|
||||||
|
width: 22.w,
|
||||||
|
height: 16.w,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void showListType(){
|
void showListType() {
|
||||||
Pickers.showDatePicker(
|
Pickers.showDatePicker(
|
||||||
context,
|
context,
|
||||||
// 模式,详见下方
|
// 模式,详见下方
|
||||||
@ -133,20 +168,17 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
|||||||
suffix: Suffix(years: ' 年'),
|
suffix: Suffix(years: ' 年'),
|
||||||
// 样式 详见下方样式
|
// 样式 详见下方样式
|
||||||
pickerStyle: PickerStyle(
|
pickerStyle: PickerStyle(
|
||||||
cancelButton:GestureDetector(
|
cancelButton: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
padding: const EdgeInsets.only(left: 22, right: 12),
|
padding: const EdgeInsets.only(left: 22, right: 12),
|
||||||
child: Text(TranslationLoader.lanKeys!.cancel!.tr, style: const TextStyle(color: Colors.black, fontSize: 16.0)),
|
child: Text(TranslationLoader.lanKeys!.cancel!.tr,
|
||||||
|
style: const TextStyle(color: Colors.black, fontSize: 16.0)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
commitButton: GestureDetector(
|
commitButton: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Container(
|
child: Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
padding: const EdgeInsets.only(left: 22, right: 12),
|
padding: const EdgeInsets.only(left: 22, right: 12),
|
||||||
@ -183,5 +215,4 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
|
|||||||
// }
|
// }
|
||||||
// );
|
// );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -12,67 +11,99 @@ class CheckingInStaffManagePage extends StatefulWidget {
|
|||||||
const CheckingInStaffManagePage({Key? key}) : super(key: key);
|
const CheckingInStaffManagePage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CheckingInStaffManagePage> createState() => _CheckingInStaffManagePageState();
|
State<CheckingInStaffManagePage> createState() =>
|
||||||
|
_CheckingInStaffManagePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CheckingInStaffManagePageState extends State<CheckingInStaffManagePage> {
|
class _CheckingInStaffManagePageState extends State<CheckingInStaffManagePage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: AppColors.greyBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.staff!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
GestureDetector(
|
barTitle: TranslationLoader.lanKeys!.staff!.tr,
|
||||||
onTap: (){
|
haveBack: true,
|
||||||
Navigator.pushNamed(context, Routers.checkingInAddStaffPage);
|
backgroundColor: AppColors.mainColor,
|
||||||
},
|
actionsList: [
|
||||||
child: Image.asset('images/icon_add_white.png', width: 50.w, height: 50.w,)
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pushNamed(context, Routers.checkingInAddStaffPage);
|
||||||
|
},
|
||||||
|
child: Image.asset(
|
||||||
|
'images/icon_add_white.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
)),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width: 30.w,),
|
body: Container(
|
||||||
],
|
color: Colors.white,
|
||||||
),
|
child: ListView.separated(
|
||||||
body: ListView.separated(
|
itemCount: 10,
|
||||||
itemCount:10,
|
itemBuilder: (c, index) {
|
||||||
itemBuilder: (c, index){
|
return _checkingInStaffManageItem('images/icon_lock.png', "张三",
|
||||||
return _checkingInStaffManageItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
separatorBuilder: (context, index) {
|
separatorBuilder: (context, index) {
|
||||||
return const Divider(height:1, indent: 20, color: Colors.grey);
|
return const Divider(
|
||||||
},
|
height: 1, indent: 20, color: AppColors.greyLineColor);
|
||||||
)
|
},
|
||||||
);
|
),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _checkingInStaffManageItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){
|
Widget _checkingInStaffManageItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
|
String beginTime, String endTime, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 70.h,
|
height: 60.h,
|
||||||
margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 10.h, bottom: 10.h),
|
margin:
|
||||||
|
EdgeInsets.only(left: 10.w, right: 10.w, top: 10.h, bottom: 10.h),
|
||||||
// decoration: BoxDecoration(
|
// decoration: BoxDecoration(
|
||||||
// color: Colors.white,
|
// color: Colors.white,
|
||||||
// borderRadius: BorderRadius.circular(10.w),
|
// borderRadius: BorderRadius.circular(10.w),
|
||||||
// ),
|
// ),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 30.w,),
|
SizedBox(
|
||||||
Container(
|
width: 30.w,
|
||||||
width: 60.h, height: 60.h,
|
),
|
||||||
decoration: BoxDecoration(
|
Image.asset(
|
||||||
color: AppColors.mainColor,
|
'images/controls_user.png',
|
||||||
border: Border.all(width: 1, color: AppColors.mainColor),
|
width: 40.w,
|
||||||
borderRadius: BorderRadius.circular(30.h),
|
height: 40.w,
|
||||||
),
|
),
|
||||||
padding: EdgeInsets.all(10.w),
|
// Container(
|
||||||
child: Image.asset('images/mine/icon_mine_main_defaultAvatar.png', width: 40.w, height: 40.w, color: Colors.white,)
|
// width: 60.h,
|
||||||
|
// height: 60.h,
|
||||||
|
// decoration: BoxDecoration(
|
||||||
|
// color: AppColors.mainColor,
|
||||||
|
// border: Border.all(width: 1, color: AppColors.mainColor),
|
||||||
|
// borderRadius: BorderRadius.circular(30.h),
|
||||||
|
// ),
|
||||||
|
// padding: EdgeInsets.all(10.w),
|
||||||
|
// child: Image.asset(
|
||||||
|
// 'images/controls_user.png',
|
||||||
|
// width: 40.w,
|
||||||
|
// height: 40.w,
|
||||||
|
// color: Colors.white,
|
||||||
|
// )),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
SizedBox(width: 30.w,),
|
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,70 +12,77 @@ class CheckingInSetWorkdaySet extends StatefulWidget {
|
|||||||
const CheckingInSetWorkdaySet({Key? key}) : super(key: key);
|
const CheckingInSetWorkdaySet({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CheckingInSetWorkdaySet> createState() => _CheckingInSetWorkdaySetState();
|
State<CheckingInSetWorkdaySet> createState() =>
|
||||||
|
_CheckingInSetWorkdaySetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.workday!.tr} ${TranslationLoader.lanKeys!.set!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body: ListView(
|
barTitle:
|
||||||
children: [
|
"${TranslationLoader.lanKeys!.workday!.tr} ${TranslationLoader.lanKeys!.set!.tr}",
|
||||||
topBtnWidget(),
|
haveBack: true,
|
||||||
Visibility(
|
backgroundColor: AppColors.mainColor),
|
||||||
visible:false,
|
body: ListView(
|
||||||
child: bottomCustomSeletBtn()
|
children: [
|
||||||
),
|
topBtnWidget(),
|
||||||
Visibility(
|
Visibility(visible: true, child: bottomCustomSeletBtn()),
|
||||||
visible:true,
|
Visibility(visible: false, child: bottomOddOrEvenDaysOffSeletBtn()),
|
||||||
child: bottomOddOrEvenDaysOffSeletBtn()
|
SizedBox(
|
||||||
),
|
height: 50.h,
|
||||||
SizedBox(height: 50.h,),
|
),
|
||||||
SubmitBtn(btnName:TranslationLoader.lanKeys!.sure!.tr,
|
Container(
|
||||||
borderRadius: 20.w,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
fontSize: 32.sp,
|
child: SubmitBtn(
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w),
|
btnName: TranslationLoader.lanKeys!.sure!.tr, onClick: () {}),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
),
|
||||||
onClick: () {
|
],
|
||||||
|
),
|
||||||
}
|
);
|
||||||
),
|
|
||||||
],
|
|
||||||
),);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget topBtnWidget(){
|
Widget topBtnWidget() {
|
||||||
return Container(
|
return Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
height: 120.h,
|
height: 100.h,
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
padding: EdgeInsets.all(10.w),
|
padding: EdgeInsets.all(10.w),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: (1.sw - 5.w*2)/2,
|
width: (1.sw - 5.w * 2) / 2,
|
||||||
height: 120.h,
|
height: 100.h,
|
||||||
color: AppColors.mainColor,
|
color: AppColors.mainColor,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Center(child: Text(TranslationLoader.lanKeys!.custom!.tr, style: TextStyle(fontSize: 32.sp, color: Colors.white))),
|
Center(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.custom!.tr,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 26.sp, color: Colors.white))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
// SizedBox(width: 10.w,),
|
// SizedBox(width: 10.w,),
|
||||||
Container(
|
Container(
|
||||||
width: (1.sw - 10*3)/2,
|
width: (1.sw - 10 * 3) / 2,
|
||||||
height: 120.h,
|
height: 100.h,
|
||||||
color: Colors.grey,
|
color: AppColors.btnDisableColor,
|
||||||
padding: EdgeInsets.all(10.w),
|
padding: EdgeInsets.all(10.w),
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Center(child: Text(TranslationLoader.lanKeys!.oddOrEvenDaysOff!.tr, style: TextStyle(fontSize: 32.sp, color: Colors.white), textAlign: TextAlign.center,))),
|
Expanded(
|
||||||
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.oddOrEvenDaysOff!.tr,
|
||||||
|
style: TextStyle(fontSize: 26.sp, color: Colors.white),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -85,86 +91,188 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget bottomOddOrEvenDaysOffSeletBtn(){
|
Widget bottomOddOrEvenDaysOffSeletBtn() {
|
||||||
return Container(
|
return Container(
|
||||||
padding: EdgeInsets.only(left:10.w, right: 10.w),
|
padding: EdgeInsets.only(left: 10.w, right: 10.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.thisWeek!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true),
|
CommonItem(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.singleDayWeekend!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
leftTitel: TranslationLoader.lanKeys!.thisWeek!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.singleDayWeekend!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.twoDaysOff!.tr, rightTitle:"", allHeight:70.h, isHaveLine: false, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.twoDaysOff!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget bottomCustomSeletBtn(){
|
Widget bottomCustomSeletBtn() {
|
||||||
return Container(
|
return Container(
|
||||||
padding: EdgeInsets.only(left:10.w, right: 10.w),
|
padding: EdgeInsets.only(left: 10.w, right: 10.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.monday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.monday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.tuesday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.tuesday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.wednesday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.wednesday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.thursday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.thursday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.friday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.friday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.saturday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.saturday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.sunday!.tr, rightTitle:"", allHeight:70.h, isHaveLine: false, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.sunday!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -28,7 +28,7 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
TextButton(
|
TextButton(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.reset!.tr,
|
TranslationLoader.lanKeys!.reset!.tr,
|
||||||
style: const TextStyle(color: Colors.white),
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
onPressed: () {},
|
onPressed: () {},
|
||||||
),
|
),
|
||||||
@ -37,17 +37,46 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
_searchWidget(),
|
_searchWidget(),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Expanded(child: _buildMainUI()),
|
Expanded(child: _buildMainUI()),
|
||||||
SubmitBtn(
|
GestureDetector(
|
||||||
btnName: TranslationLoader.lanKeys!.sendKey!.tr,
|
child: Container(
|
||||||
borderRadius: 20.w,
|
height: 80.h,
|
||||||
margin: EdgeInsets.only(
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
decoration: BoxDecoration(
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
color: Colors.white,
|
||||||
onClick: () {
|
borderRadius: BorderRadius.circular(8.w)),
|
||||||
Navigator.pushNamed(
|
child: Row(
|
||||||
context, Routers.sendElectronicKeyManagePage);
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
}),
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_btn_add.png',
|
||||||
|
width: 28.w,
|
||||||
|
height: 28.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 6.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.sendKey!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 64.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -89,14 +118,21 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.separated(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三",
|
return _electronicKeyItem('images/controls_user.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
|
return const Divider(
|
||||||
|
height: 1,
|
||||||
|
color: AppColors.greyLineColor,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
@ -104,12 +140,8 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
color: Colors.white,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
height: 90.h,
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
|
||||||
),
|
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@ -117,36 +149,41 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 60.w,
|
||||||
height: 50.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Row(
|
||||||
// color: Colors.red,
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
child: Row(
|
children: [
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
Text(
|
||||||
children: [
|
lockTypeTitle,
|
||||||
Text(
|
style: TextStyle(
|
||||||
lockTypeTitle,
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
style: TextStyle(
|
),
|
||||||
fontSize: 32.sp, fontWeight: FontWeight.w500),
|
SizedBox(width: 10.w),
|
||||||
),
|
Image.asset(
|
||||||
SizedBox(width: 20.w),
|
'images/icon_electronicKey_admin.png',
|
||||||
Text(
|
width: 24.w,
|
||||||
"待接收",
|
height: 20.w,
|
||||||
style: TextStyle(
|
),
|
||||||
fontSize: 24.sp, fontWeight: FontWeight.w500),
|
Expanded(
|
||||||
),
|
child: SizedBox(
|
||||||
],
|
width: 20.w,
|
||||||
),
|
)),
|
||||||
|
Text(
|
||||||
|
"待接收",
|
||||||
|
style: TextStyle(fontSize: 18.sp, color: Colors.red),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width: 20.w),
|
SizedBox(height: 10.h),
|
||||||
Container(
|
Container(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
@ -154,7 +191,8 @@ class _ElectronicKeyListPageState extends State<ElectronicKeyListPage> {
|
|||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15-2023.6.21 11.15",
|
"2023.6.21 11.15-2023.6.21 11.15",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp, fontWeight: FontWeight.w500),
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -41,27 +41,37 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
// 限时
|
// 限时
|
||||||
return sendElectronicKeySucceed();
|
return sendElectronicKeySucceed();
|
||||||
// return Column(
|
// return Column(
|
||||||
// children: [
|
// children: [
|
||||||
// keyInfoWidget(),
|
// keyInfoWidget(),
|
||||||
// keyTimeWidget(),
|
// keyTimeWidget(),
|
||||||
// keyRealNameWidget(),
|
// remoteUnlockingWidget(),
|
||||||
// keyBottomWidget()
|
// keyRealNameWidget(),
|
||||||
// ],
|
// keyBottomWidget()
|
||||||
// );
|
// ],
|
||||||
|
// );
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
// 永久
|
// 永久
|
||||||
return Column(
|
return Column(
|
||||||
children: [keyInfoWidget(), keyRealNameWidget(), keyBottomWidget()],
|
children: [
|
||||||
|
keyInfoWidget(),
|
||||||
|
remoteUnlockingWidget(),
|
||||||
|
keyRealNameWidget(),
|
||||||
|
keyBottomWidget()
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
// 单次
|
// 单次
|
||||||
return Column(
|
return Column(
|
||||||
children: [keyInfoWidget(), keyRealNameWidget(), keyBottomWidget()],
|
children: [
|
||||||
|
keyInfoWidget(),
|
||||||
|
remoteUnlockingWidget(),
|
||||||
|
keyRealNameWidget(),
|
||||||
|
keyBottomWidget()
|
||||||
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
case 3:
|
case 3:
|
||||||
@ -70,8 +80,9 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
keyInfoWidget(),
|
keyInfoWidget(),
|
||||||
keyRealNameWidget(),
|
|
||||||
keyPeriodValidityWidget(),
|
keyPeriodValidityWidget(),
|
||||||
|
remoteUnlockingWidget(),
|
||||||
|
keyRealNameWidget(),
|
||||||
keyBottomWidget()
|
keyBottomWidget()
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -135,10 +146,10 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel: TranslationLoader.lanKeys!.realNameAuthentication!.tr,
|
leftTitel: TranslationLoader.lanKeys!.realNameAuthentication!.tr,
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
|
isTipsImg: true,
|
||||||
isHaveRightWidget: true,
|
isHaveRightWidget: true,
|
||||||
rightWidget: Container(width: 80.w, height: 50.h, child: _switch()),
|
rightWidget: SizedBox(width: 80.w, height: 50.h, child: _switch()),
|
||||||
action: () {}),
|
action: () {}),
|
||||||
Container(height: 10.h),
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -155,6 +166,9 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
Navigator.pushNamed(
|
Navigator.pushNamed(
|
||||||
context, Routers.electronicKeyPeriodValidityPage);
|
context, Routers.electronicKeyPeriodValidityPage);
|
||||||
}),
|
}),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -171,6 +185,8 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.sendKeyBottomTip!.tr,
|
TranslationLoader.lanKeys!.sendKeyBottomTip!.tr,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 18.sp, color: AppColors.darkGrayTextColor),
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -189,9 +205,8 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.sendGroupKey!.tr,
|
TranslationLoader.lanKeys!.sendGroupKey!.tr,
|
||||||
style: TextStyle(
|
style:
|
||||||
color: AppColors.mainColor,
|
TextStyle(color: AppColors.mainColor, fontSize: 22.sp),
|
||||||
fontWeight: FontWeight.w500),
|
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -214,10 +229,9 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
height: 30.h,
|
height: 30.h,
|
||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/main/icon_main_addLock.png',
|
'images/icon_send_success.png',
|
||||||
width: 150.w,
|
width: 100.w,
|
||||||
height: 150.w,
|
height: 100.w,
|
||||||
color: AppColors.mainColor,
|
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: 20.h,
|
height: 20.h,
|
||||||
@ -228,7 +242,7 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
Text(
|
Text(
|
||||||
"发送成功",
|
"发送成功",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 32.sp,
|
fontSize: 26.sp,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
fontWeight: FontWeight.w500),
|
fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
@ -240,36 +254,23 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
SizedBox(
|
SizedBox(
|
||||||
height: 20.h,
|
height: 20.h,
|
||||||
),
|
),
|
||||||
SubmitBtn(
|
SubmitBtn(btnName: '完成', onClick: () {}),
|
||||||
btnName: '完成',
|
SizedBox(
|
||||||
fontSize: 28.sp,
|
height: 10.h,
|
||||||
borderRadius: 20.w,
|
),
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName: '邮件通知',
|
btnName: '邮件通知',
|
||||||
fontSize: 28.sp,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {
|
onClick: () {
|
||||||
Navigator.pushNamed(context, Routers.sendEmailNotificationPage);
|
Navigator.pushNamed(context, Routers.sendEmailNotificationPage);
|
||||||
}),
|
}),
|
||||||
SubmitBtn(
|
SizedBox(
|
||||||
btnName: '微信通知',
|
height: 10.h,
|
||||||
fontSize: 28.sp,
|
),
|
||||||
borderRadius: 20.w,
|
SubmitBtn(btnName: '微信通知', onClick: () {}),
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
SizedBox(
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
height: 10.h,
|
||||||
onClick: () {}),
|
),
|
||||||
SubmitBtn(
|
SubmitBtn(btnName: '标记为已入住', onClick: () {}),
|
||||||
btnName: '标记为已入住',
|
|
||||||
fontSize: 28.sp,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -278,7 +279,7 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
Widget getTFWidget(bool isHaveBtn, String tfStr) {
|
Widget getTFWidget(bool isHaveBtn, String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 500.w,
|
width: 320.w,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
@ -292,6 +293,7 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
@ -302,12 +304,12 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
),
|
),
|
||||||
isHaveBtn
|
isHaveBtn
|
||||||
? Container(
|
? Container(
|
||||||
width: 50.w,
|
width: 32.w,
|
||||||
height: 50.w,
|
height: 32.w,
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage('images/icon_lock.png'),
|
image: AssetImage('images/icon_addressBook.png'),
|
||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
),
|
),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
@ -327,6 +329,21 @@ class _SendElectronicKeyPageState extends State<SendElectronicKeyPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 远程开锁
|
||||||
|
Widget remoteUnlockingWidget() {
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveRightWidget: true,
|
||||||
|
rightWidget: SizedBox(width: 80.w, height: 50.h, child: _switch()),
|
||||||
|
action: () {}),
|
||||||
|
Container(height: 10.h),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
CupertinoSwitch _switch() {
|
CupertinoSwitch _switch() {
|
||||||
bool _isOn = false;
|
bool _isOn = false;
|
||||||
return CupertinoSwitch(
|
return CupertinoSwitch(
|
||||||
|
|||||||
@ -8,15 +8,19 @@ import '../../../../../translations/trans_lib.dart';
|
|||||||
import '../sendElectronicKey/sendElectronicKey_page.dart';
|
import '../sendElectronicKey/sendElectronicKey_page.dart';
|
||||||
|
|
||||||
class SendElectronicKeyManageTabbar extends StatefulWidget {
|
class SendElectronicKeyManageTabbar extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
|
|
||||||
SendElectronicKeyManageTabbar({Key? key, required this.initialIndex}) : super(key: key);
|
SendElectronicKeyManageTabbar({Key? key, required this.initialIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<SendElectronicKeyManageTabbar> createState() => _SendElectronicKeyManageTabbarState();
|
State<SendElectronicKeyManageTabbar> createState() =>
|
||||||
|
_SendElectronicKeyManageTabbarState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _SendElectronicKeyManageTabbarState extends State<SendElectronicKeyManageTabbar> with SingleTickerProviderStateMixin {
|
class _SendElectronicKeyManageTabbarState
|
||||||
|
extends State<SendElectronicKeyManageTabbar>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs = <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
@ -30,33 +34,44 @@ class _SendElectronicKeyManageTabbarState extends State<SendElectronicKeyManageT
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,19 +79,26 @@ class _SendElectronicKeyManageTabbarState extends State<SendElectronicKeyManageT
|
|||||||
return Tab(
|
return Tab(
|
||||||
// text: item.title,
|
// text: item.title,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 1.sw/8,
|
width: 1.sw / 8,
|
||||||
margin: EdgeInsets.all(10.w),
|
margin: EdgeInsets.all(10.w),
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Text(item.title, textAlign: TextAlign.center,),
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => SendElectronicKeyPage(type: item.type,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => SendElectronicKeyPage(
|
||||||
|
type: item.type,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,8 @@ class SendEmailNotificationPage extends StatefulWidget {
|
|||||||
const SendEmailNotificationPage({Key? key}) : super(key: key);
|
const SendEmailNotificationPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<SendEmailNotificationPage> createState() => _SendEmailNotificationPageState();
|
State<SendEmailNotificationPage> createState() =>
|
||||||
|
_SendEmailNotificationPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _SendEmailNotificationPageState extends State<SendEmailNotificationPage> {
|
class _SendEmailNotificationPageState extends State<SendEmailNotificationPage> {
|
||||||
@ -18,46 +19,71 @@ class _SendEmailNotificationPageState extends State<SendEmailNotificationPage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
_emailController.text = "请爱的用户 \n\n你收到电子钥匙,请试用APP(www.baidu.com)或小程序开锁 \n\n星锁";
|
_emailController.text =
|
||||||
|
"请爱的用户 \n\n你收到电子钥匙,请试用APP(www.baidu.com)或小程序开锁 \n\n星锁";
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "邮件通知", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: "邮件通知",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:"接收者", rightTitle:"786612630@qq.com", isHaveLine: true,),
|
CommonItem(
|
||||||
CommonItem(leftTitel:"类型", rightTitle:"个人邮件", isHaveDirection: true,),
|
leftTitel: "接收者",
|
||||||
|
rightTitle: "786612630@qq.com",
|
||||||
|
isHaveLine: true,
|
||||||
|
),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: "类型",
|
||||||
|
rightTitle: "个人邮件",
|
||||||
|
isHaveDirection: true,
|
||||||
|
),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
CommonItem(leftTitel:"模板", rightTitle:"默认模板", isHaveDirection: true, isHaveLine:true),
|
CommonItem(
|
||||||
|
leftTitel: "模板",
|
||||||
|
rightTitle: "默认模板",
|
||||||
|
isHaveDirection: true,
|
||||||
|
isHaveLine: true),
|
||||||
Container(
|
Container(
|
||||||
height: 360.h,
|
height: 360.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: EdgeInsets.only(left:20.w, right: 20.w, top: 20.h, bottom: 20.h),
|
padding: EdgeInsets.only(
|
||||||
child:TextField(
|
left: 20.w, right: 20.w, top: 20.h, bottom: 20.h),
|
||||||
maxLines:8,
|
child: TextField(
|
||||||
maxLength:1000,
|
maxLines: 8,
|
||||||
|
maxLength: 1000,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
controller: _emailController,
|
controller: _emailController,
|
||||||
style: TextStyle(color: Colors.black,fontSize: 28.sp,),
|
style: TextStyle(
|
||||||
|
color: Colors.black,
|
||||||
|
fontSize: 28.sp,
|
||||||
|
),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
border: OutlineInputBorder(
|
border: OutlineInputBorder(
|
||||||
///设置边框四个角的弧度
|
///设置边框四个角的弧度
|
||||||
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
||||||
|
|
||||||
///用来配置边框的样式
|
///用来配置边框的样式
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
///设置边框的颜色
|
///设置边框的颜色
|
||||||
color: Color(0xffB2B2B2),
|
color: Color(0xffB2B2B2),
|
||||||
|
|
||||||
///设置边框的粗细
|
///设置边框的粗细
|
||||||
width: 0.5,
|
width: 0.5,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
///用来配置输入框获取焦点时的颜色
|
///用来配置输入框获取焦点时的颜色
|
||||||
focusedBorder: OutlineInputBorder(
|
focusedBorder: OutlineInputBorder(
|
||||||
///设置边框四个角的弧度
|
///设置边框四个角的弧度
|
||||||
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
||||||
|
|
||||||
///用来配置边框的样式
|
///用来配置边框的样式
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
///设置边框的颜色
|
///设置边框的颜色
|
||||||
color: Color(0xffB2B2B2),
|
color: Color(0xffB2B2B2),
|
||||||
|
|
||||||
///设置边框的粗细
|
///设置边框的粗细
|
||||||
width: 1,
|
width: 1,
|
||||||
),
|
),
|
||||||
@ -66,9 +92,13 @@ class _SendEmailNotificationPageState extends State<SendEmailNotificationPage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(height: 40.h),
|
Container(height: 40.h),
|
||||||
SubmitBtn(btnName: '发送', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){
|
SubmitBtn(
|
||||||
|
btnName: '发送',
|
||||||
}),
|
fontSize: 28.sp,
|
||||||
|
borderRadius: 20.w,
|
||||||
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -79,13 +79,16 @@ class _AutomaticBlockingPageState extends State<AutomaticBlockingPage> {
|
|||||||
visible: true,
|
visible: true,
|
||||||
child: Container(
|
child: Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.only(
|
||||||
|
left: 30.w, top: 10.w, right: 30.w, bottom: 10.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)"),
|
"${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)",
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
TextField(
|
TextField(
|
||||||
@ -99,7 +102,7 @@ class _AutomaticBlockingPageState extends State<AutomaticBlockingPage> {
|
|||||||
const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText:
|
hintText:
|
||||||
"${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)",
|
"${TranslationLoader.lanKeys!.pleaseEnter!.tr}${TranslationLoader.lanKeys!.time!.tr}(S)",
|
||||||
hintStyle: TextStyle(fontSize: 30.sp),
|
hintStyle: TextStyle(fontSize: 24.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
@ -118,7 +121,9 @@ class _AutomaticBlockingPageState extends State<AutomaticBlockingPage> {
|
|||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.automaticBlockingTip!.tr)),
|
TranslationLoader.lanKeys!.automaticBlockingTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -12,7 +11,8 @@ class AdminOpenLockPasswordPage extends StatefulWidget {
|
|||||||
const AdminOpenLockPasswordPage({Key? key}) : super(key: key);
|
const AdminOpenLockPasswordPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<AdminOpenLockPasswordPage> createState() => _AdminOpenLockPasswordPageState();
|
State<AdminOpenLockPasswordPage> createState() =>
|
||||||
|
_AdminOpenLockPasswordPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AdminOpenLockPasswordPageState extends State<AdminOpenLockPasswordPage> {
|
class _AdminOpenLockPasswordPageState extends State<AdminOpenLockPasswordPage> {
|
||||||
@ -20,12 +20,18 @@ class _AdminOpenLockPasswordPageState extends State<AdminOpenLockPasswordPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.adminOpenLockPassword!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Column(
|
barTitle: TranslationLoader.lanKeys!.adminOpenLockPassword!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.password!.tr, rightTitle:"189934", isHaveLine: false, isHaveDirection: true, action: (){
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.password!.tr,
|
||||||
}),
|
rightTitle: "189934",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {}),
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.all(30.w),
|
margin: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -33,27 +39,35 @@ class _AdminOpenLockPasswordPageState extends State<AdminOpenLockPasswordPage> {
|
|||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.adminOpenLockPasswordTip!.tr)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.adminOpenLockPasswordTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height:10.h,),
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.updateLockAdminPassword!.tr, style: TextStyle(color: AppColors.mainColor),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader
|
||||||
|
.lanKeys!.updateLockAdminPassword!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor, fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -22,34 +21,77 @@ class _BasicInformationPageState extends State<BasicInformationPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Column(
|
barTitle: TranslationLoader.lanKeys!.basicInformation!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: ListView(
|
child: ListView(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockNumber!.tr, rightTitle:"MCBN0c_8f3106", allHeight:70.h, isHaveLine: false),
|
CommonItem(
|
||||||
CommonItem(leftTitel:"MAC/ID", rightTitle:"53:66:9F:06:31:8F/9418481", allHeight:70.h, isHaveLine: false),
|
leftTitel: TranslationLoader.lanKeys!.lockNumber!.tr,
|
||||||
SizedBox(height: 10.h,),
|
rightTitle: "MCBN0c_8f3106",
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.electricQuantity!.tr, rightTitle:"100%", isHaveLine: true, isHaveDirection: true, action: (){
|
allHeight: 70.h,
|
||||||
Navigator.pushNamed(context, Routers.uploadElectricQuantityPage);
|
isHaveLine: false),
|
||||||
}),
|
CommonItem(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.periodValidity!.tr, rightTitle:"永久", allHeight:70.h, isHaveLine: false),
|
leftTitel: "MAC/ID",
|
||||||
SizedBox(height: 10.h,),
|
rightTitle: "53:66:9F:06:31:8F/9418481",
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockName!.tr, rightTitle:"MCBN0c_8f3106", isHaveLine: true, isHaveDirection: true, action: (){
|
allHeight: 70.h,
|
||||||
Navigator.pushNamed(context, Routers.editLockNamePage);
|
isHaveLine: false),
|
||||||
}),
|
SizedBox(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.lockGrouping!.tr, rightTitle:"202307", isHaveLine: true, isHaveDirection: true, action: (){
|
height: 10.h,
|
||||||
Navigator.pushNamed(context, Routers.lockSeletGroupingPage);
|
),
|
||||||
}),
|
CommonItem(
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.adminOpenLockPassword!.tr, rightTitle:"", isHaveLine: false, isHaveDirection: true, action: (){
|
leftTitel:
|
||||||
Navigator.pushNamed(context, Routers.adminOpenLockPasswordPage);
|
TranslationLoader.lanKeys!.electricQuantity!.tr,
|
||||||
}),
|
rightTitle: "100%",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context, Routers.uploadElectricQuantityPage);
|
||||||
|
}),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.periodValidity!.tr,
|
||||||
|
rightTitle: "永久",
|
||||||
|
allHeight: 70.h,
|
||||||
|
isHaveLine: false),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.lockName!.tr,
|
||||||
|
rightTitle: "MCBN0c_8f3106",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
Navigator.pushNamed(context, Routers.editLockNamePage);
|
||||||
|
}),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.lockGrouping!.tr,
|
||||||
|
rightTitle: "202307",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context, Routers.lockSeletGroupingPage);
|
||||||
|
}),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel:
|
||||||
|
TranslationLoader.lanKeys!.adminOpenLockPassword!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context, Routers.adminOpenLockPasswordPage);
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../../../app_settings/app_colors.dart';
|
import '../../../../../app_settings/app_colors.dart';
|
||||||
@ -16,7 +16,8 @@ class EditLockNamePage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _EditLockNamePageState extends State<EditLockNamePage> {
|
class _EditLockNamePageState extends State<EditLockNamePage> {
|
||||||
final TextEditingController _changeLockNameController = TextEditingController();
|
final TextEditingController _changeLockNameController =
|
||||||
|
TextEditingController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@ -28,18 +29,29 @@ class _EditLockNamePageState extends State<EditLockNamePage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
TextButton(
|
barTitle: TranslationLoader.lanKeys!.changeName!.tr,
|
||||||
child: Text(TranslationLoader.lanKeys!.sure!.tr, style: const TextStyle(color: Colors.white),),
|
haveBack: true,
|
||||||
onPressed: (){
|
backgroundColor: AppColors.mainColor,
|
||||||
|
actionsList: [
|
||||||
},),
|
TextButton(
|
||||||
],),
|
child: Text(
|
||||||
body:Container(
|
TranslationLoader.lanKeys!.sure!.tr,
|
||||||
child: LoginInput(controller: _changeLockNameController, leftWidget:const SizedBox(), hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr, inputFormatters: [
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
LengthLimitingTextInputFormatter(20),
|
),
|
||||||
]),
|
onPressed: () {},
|
||||||
)
|
),
|
||||||
);
|
],
|
||||||
|
),
|
||||||
|
body: Container(
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
child: LoginInput(
|
||||||
|
controller: _changeLockNameController,
|
||||||
|
leftWidget: const SizedBox(),
|
||||||
|
hintText: TranslationLoader.lanKeys!.pleaseEnterNumberOrEmail!.tr,
|
||||||
|
inputFormatters: [
|
||||||
|
LengthLimitingTextInputFormatter(20),
|
||||||
|
]),
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -21,33 +20,51 @@ class _LockSeletGroupingPageState extends State<LockSeletGroupingPage> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.basicInformation!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Column(
|
barTitle: TranslationLoader.lanKeys!.selectGroup!.tr,
|
||||||
children: [
|
haveBack: true,
|
||||||
Expanded(child: _buildMainUI()),
|
backgroundColor: AppColors.mainColor),
|
||||||
SubmitBtn(
|
body: Column(
|
||||||
btnName: TranslationLoader.lanKeys!.sure!.tr,
|
children: [
|
||||||
borderRadius: 20.w,
|
Expanded(child: _buildMainUI()),
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
SubmitBtn(
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
btnName: TranslationLoader.lanKeys!.createNewGroup!.tr,
|
||||||
onClick: (){
|
borderRadius: 20.w,
|
||||||
// Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage);
|
margin: EdgeInsets.only(
|
||||||
}
|
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
||||||
),
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
],
|
onClick: () {
|
||||||
),
|
// Navigator.pushNamed(context, Routers.sendElectronicKeyManagePage);
|
||||||
|
}),
|
||||||
|
SizedBox(
|
||||||
|
height: 40.h,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI(){
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount:2,
|
itemCount: 2,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return CommonItem(leftTitel:"202307", rightTitle:"", allHeight: 70.h, isHaveLine: true, isHaveDirection:false, isHaveRightWidget: true, rightWidget: Image(image: const AssetImage("images/icon_item_checked.png"),width:30.w,height:30.w, fit: BoxFit.contain,), action: (){
|
return CommonItem(
|
||||||
// logic.changeLanguage(e);
|
leftTitel: "202307",
|
||||||
});
|
rightTitle: "",
|
||||||
}
|
allHeight: 70.h,
|
||||||
);
|
isHaveLine: true,
|
||||||
|
isHaveDirection: false,
|
||||||
|
isHaveRightWidget: true,
|
||||||
|
rightWidget: Image(
|
||||||
|
image: const AssetImage("images/icon_item_checked.png"),
|
||||||
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
fit: BoxFit.contain,
|
||||||
|
),
|
||||||
|
action: () {
|
||||||
|
// logic.changeLanguage(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,45 +11,59 @@ class UploadElectricQuantityPage extends StatefulWidget {
|
|||||||
const UploadElectricQuantityPage({Key? key}) : super(key: key);
|
const UploadElectricQuantityPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<UploadElectricQuantityPage> createState() => _UploadElectricQuantityPageState();
|
State<UploadElectricQuantityPage> createState() =>
|
||||||
|
_UploadElectricQuantityPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _UploadElectricQuantityPageState extends State<UploadElectricQuantityPage> {
|
class _UploadElectricQuantityPageState
|
||||||
|
extends State<UploadElectricQuantityPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.electricQuantity!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.electricQuantity!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.updateElectricQuantityTip!.tr)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.updateElectricQuantityTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 40.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text("${TranslationLoader.lanKeys!.electricQuantity!.tr} 100%")),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
"${TranslationLoader.lanKeys!.electricQuantity!.tr} 100%",
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.update!.tr,
|
height: 30.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.update!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,37 +19,50 @@ class _BurglarAlarmPageState extends State<BurglarAlarmPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.burglarAlarm!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.burglarAlarm!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.burglarAlarmTip!.tr)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.burglarAlarmTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: const TextStyle(fontWeight: FontWeight.w600),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
"${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}",
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w600),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr,
|
height: 40.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.closed!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,30 +19,37 @@ class _DiagnosePageState extends State<DiagnosePage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.diagnose!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.diagnose!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.diagnoseTip!.tr)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.diagnoseTip!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.uploading!.tr,
|
height: 40.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.uploading!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -17,15 +16,20 @@ class AddDoorMagneticPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _AddDoorMagneticPageState extends State<AddDoorMagneticPage> {
|
class _AddDoorMagneticPageState extends State<AddDoorMagneticPage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.doorMagnetic!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.doorMagnetic!.tr}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 100.h,),
|
SizedBox(
|
||||||
|
height: 100.h,
|
||||||
|
),
|
||||||
Container(
|
Container(
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
@ -33,41 +37,54 @@ class _AddDoorMagneticPageState extends State<AddDoorMagneticPage> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.pressAndHoldTheResetButtonTwoSeconds!.tr, textAlign:TextAlign.center, style: TextStyle(fontSize: 34.sp, fontWeight: FontWeight.w500),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader
|
||||||
|
.lanKeys!.pressAndHoldTheResetButtonTwoSeconds!.tr,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 90.h,),
|
SizedBox(
|
||||||
Image.asset('images/main/icon_addDoorMagnetic_tip.png', width: 300.w, height: 300.w,),
|
height: 90.h,
|
||||||
SizedBox(height: 90.h,),
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/main/icon_addDoorMagnetic_tip.png',
|
||||||
|
width: 260.w,
|
||||||
|
height: 260.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 90.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),),
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr,
|
||||||
|
style: TextStyle(fontSize: 22.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 90.h,),
|
SizedBox(
|
||||||
SubmitBtn(
|
height: 90.h,
|
||||||
btnName: TranslationLoader.lanKeys!.next!.tr,
|
),
|
||||||
borderRadius: 10.w,
|
Container(
|
||||||
fontSize: 28.sp,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
child: SubmitBtn(
|
||||||
padding: EdgeInsets.only(top: 15.w, bottom: 15.w),
|
btnName: TranslationLoader.lanKeys!.next!.tr,
|
||||||
onClick: (){
|
onClick: () {
|
||||||
Navigator.pushNamed(context, Routers.nearbyDoorMagneticPage);
|
Navigator.pushNamed(context, Routers.nearbyDoorMagneticPage);
|
||||||
}
|
}),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onShow() {}
|
||||||
|
|
||||||
void onShow(){
|
void onHide() {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void onHide(){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -22,7 +21,10 @@ class _DoorMagneticPageState extends State<DoorMagneticPage> with BaseWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.doorMagnetic!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.doorMagnetic!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
@ -31,26 +33,34 @@ class _DoorMagneticPageState extends State<DoorMagneticPage> with BaseWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.doorMagneticListTopTip!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.doorMagneticListTopTip!.tr,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 20.sp, fontWeight: FontWeight.w500),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(child: _buildMainUI()),
|
Expanded(child: _buildMainUI()),
|
||||||
SubmitBtn(
|
Container(
|
||||||
btnName: "${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.doorMagnetic!.tr}",
|
margin: EdgeInsets.only(left: 200.w, right: 200.w),
|
||||||
borderRadius: 20.w,
|
child: SubmitBtn(
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
btnName:
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.doorMagnetic!.tr}",
|
||||||
onClick: (){
|
onClick: () {
|
||||||
Navigator.pushNamed(context, Routers.addDoorMagneticPage);
|
Navigator.pushNamed(context, Routers.addDoorMagneticPage);
|
||||||
}
|
}),
|
||||||
),
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 500.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI(){
|
Widget _buildMainUI() {
|
||||||
// return ListView.builder(
|
// return ListView.builder(
|
||||||
// itemCount:10,
|
// itemCount:10,
|
||||||
// itemBuilder: (c, index){
|
// itemBuilder: (c, index){
|
||||||
@ -62,21 +72,30 @@ class _DoorMagneticPageState extends State<DoorMagneticPage> with BaseWidget {
|
|||||||
return emptyView();
|
return emptyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
|
String beginTime, String endTime, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 100.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 30.w,),
|
SizedBox(
|
||||||
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
width: 30.w,
|
||||||
SizedBox(width: 30.w,),
|
),
|
||||||
|
Image.asset(
|
||||||
|
lockTypeIcon,
|
||||||
|
width: 50.w,
|
||||||
|
height: 50.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@ -86,26 +105,34 @@ class _DoorMagneticPageState extends State<DoorMagneticPage> with BaseWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 32.sp, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
// SizedBox(width:20.w),
|
// SizedBox(width:20.w),
|
||||||
// Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
// Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Container(
|
Container(
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text("2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
"2023.6.21 11.15",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp, fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -19,19 +18,22 @@ class _NearbyDoorMagneticPageState extends State<NearbyDoorMagneticPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.nearbyEquipment!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.nearbyEquipment!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: ListView.builder(
|
body: ListView.builder(
|
||||||
itemCount:20,
|
itemCount: 20,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){
|
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () {
|
||||||
// Navigator.pushNamed(context, Routers.saveLockPage);
|
// Navigator.pushNamed(context, Routers.saveLockPage);
|
||||||
});
|
});
|
||||||
}
|
}),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function() action){
|
Widget nearbyLockItem(
|
||||||
|
String lockTypeIcon, String lockTypeTitle, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -44,31 +46,41 @@ class _NearbyDoorMagneticPageState extends State<NearbyDoorMagneticPage> {
|
|||||||
children: [
|
children: [
|
||||||
// SizedBox(width:20.w),
|
// SizedBox(width:20.w),
|
||||||
// Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
// Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,),
|
Image.asset(
|
||||||
SizedBox(width:30.w),
|
'images/main/icon_main_addLock.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
|
SizedBox(width: 30.w),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(height: 0.5.h, color: Colors.grey,)
|
Container(
|
||||||
|
height: 0.5.h,
|
||||||
|
color: Colors.grey,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onShow(){
|
void onShow() {}
|
||||||
}
|
|
||||||
|
|
||||||
void onHide(){
|
void onHide() {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,47 +19,57 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(
|
appBar: TitleAppBar(
|
||||||
barTitle: TranslationLoader.lanKeys!.importOtherLockData!.tr,
|
barTitle: TranslationLoader.lanKeys!.importOtherLockData!.tr,
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor),
|
backgroundColor: AppColors.mainColor,
|
||||||
body: Container(
|
actionsList: [
|
||||||
padding: EdgeInsets.all(30.w),
|
IconButton(
|
||||||
child: Column(
|
icon: Image.asset(
|
||||||
children: [
|
'images/icon_bar_tips.png',
|
||||||
Row(
|
width: 32.w,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
height: 32.w,
|
||||||
children: [
|
),
|
||||||
Expanded(
|
onPressed: () {},
|
||||||
child: Text(TranslationLoader
|
|
||||||
.lanKeys!.importOtherLockDataTip!.tr)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 20.h,
|
|
||||||
),
|
|
||||||
_searchWidget(),
|
|
||||||
SizedBox(
|
|
||||||
height: 10.h,
|
|
||||||
),
|
|
||||||
Expanded(child: _buildMainUI()),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName: TranslationLoader.lanKeys!.sure!.tr,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
fontSize: 32.sp,
|
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
|
||||||
onClick: () {}),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
));
|
],
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: EdgeInsets.only(top: 30.w, left: 20.w, right: 20.w),
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.importOtherLockDataTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 22.sp),
|
||||||
|
)),
|
||||||
|
_searchWidget(),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
Expanded(child: _buildMainUI()),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
child: SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.sure!.tr, onClick: () {}),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 40.h,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _searchWidget() {
|
Widget _searchWidget() {
|
||||||
return Container(
|
return Container(
|
||||||
height: 60.h,
|
height: 60.h,
|
||||||
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.w),
|
margin: EdgeInsets.only(top: 30.w, left: 20.w, right: 10.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white, borderRadius: BorderRadius.circular(5)),
|
color: Colors.white, borderRadius: BorderRadius.circular(5)),
|
||||||
child: TextField(
|
child: TextField(
|
||||||
@ -92,14 +102,21 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.separated(
|
||||||
itemCount: 20,
|
itemCount: 2,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三",
|
return _electronicKeyItem('images/icon_round_unSelet.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
|
return const Divider(
|
||||||
|
height: 1,
|
||||||
|
color: AppColors.greyLineColor,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
@ -107,8 +124,8 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 60.h,
|
||||||
margin: EdgeInsets.only(top: 15.h),
|
// margin: EdgeInsets.only(top: 15.h),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
@ -120,12 +137,20 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 30.w,
|
||||||
height: 50.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 10.w,
|
||||||
),
|
),
|
||||||
|
Text(
|
||||||
|
'test锁',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.blackColor,
|
||||||
|
fontSize: 22.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
/*
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@ -166,6 +191,7 @@ class _ImportOtherLockDataPageState extends State<ImportOtherLockDataPage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
*/
|
||||||
SizedBox(width: 20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -20,37 +19,58 @@ class _LockEscalationPageState extends State<LockEscalationPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.lockEscalation!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.lockEscalation!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 60.h,),
|
SizedBox(
|
||||||
|
height: 60.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Image.asset('images/main/icon_main_lockSet_lockEscalation.png', width: 40.w, height: 40.w,),
|
Image.asset(
|
||||||
SizedBox(width: 10.w,),
|
'images/main/icon_main_lockSet_lockEscalation.png',
|
||||||
Text(TranslationLoader.lanKeys!.haveNewVersion!.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600),)
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 10.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.haveNewVersion!.tr,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600),
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
Text("${TranslationLoader.lanKeys!.currentVersion!.tr}:1.0.0"),
|
height: 30.h,
|
||||||
SizedBox(height: 10.h,),
|
|
||||||
Text("${TranslationLoader.lanKeys!.newVersion!.tr}:1.0.1", style: TextStyle(color: AppColors.mainColor),),
|
|
||||||
SizedBox(height: 30.h,),
|
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.upgrade!.tr,
|
|
||||||
borderRadius: 20.w,
|
|
||||||
fontSize: 32.sp,
|
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
|
||||||
onClick: () {
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
|
Text(
|
||||||
|
"${TranslationLoader.lanKeys!.currentVersion!.tr}:1.0.0",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 18.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"${TranslationLoader.lanKeys!.newVersion!.tr}:1.0.1",
|
||||||
|
style: TextStyle(color: AppColors.mainColor, fontSize: 18.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 40.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.upgrade!.tr,
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,13 +38,17 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
height: 10.h,
|
height: 10.h,
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.only(
|
||||||
color: Colors.white,
|
left: 30.w, right: 30.w, top: 20.w, bottom: 20.w),
|
||||||
|
// color: Colors.white,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(TranslationLoader.lanKeys!.lockSoundTip!.tr)),
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.lockSoundTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -73,8 +77,8 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -90,8 +94,8 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -107,8 +111,8 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -124,8 +128,8 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -141,8 +145,8 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
children: [
|
children: [
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -150,14 +154,14 @@ class _LockSoundSetPageState extends State<LockSoundSetPage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
SubmitBtn(
|
Container(
|
||||||
btnName: TranslationLoader.lanKeys!.save!.tr,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 30.w),
|
||||||
borderRadius: 20.w,
|
child: SubmitBtn(
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
btnName: TranslationLoader.lanKeys!.save!.tr,
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
onClick: () {
|
||||||
onClick: () {
|
// Navigator.pushNamed(context, Routers.nearbyLockPage);
|
||||||
// Navigator.pushNamed(context, Routers.nearbyLockPage);
|
}),
|
||||||
}),
|
),
|
||||||
],
|
],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -16,45 +15,51 @@ class LockTimePage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _LockTimePageState extends State<LockTimePage> {
|
class _LockTimePageState extends State<LockTimePage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.lockTime!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.lockTime!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 50.h,),
|
SizedBox(
|
||||||
|
height: 50.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text("2023.07.10 11.47.33", style: TextStyle(fontSize: 36.sp)),
|
Text("2023.07.10 11.47.33",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 26.sp, color: AppColors.blackColor)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 60.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.calibrationTime!.tr,
|
height: 60.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.calibrationTime!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
SizedBox(
|
||||||
}
|
height: 40.h,
|
||||||
),
|
),
|
||||||
SizedBox(height: 40.h,),
|
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
|
||||||
},
|
|
||||||
child: Container(
|
child: Container(
|
||||||
child: Text(TranslationLoader.lanKeys!.setTheDSTMode!.tr, style: TextStyle(fontSize: 30.sp, color: AppColors.mainColor))
|
child: Text(TranslationLoader.lanKeys!.setTheDSTMode!.tr,
|
||||||
),
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp, color: AppColors.mainColor))),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -21,37 +20,59 @@ class _MarkedHouseStatePageState extends State<MarkedHouseStatePage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.markedHouseState!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.markedHouseState!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.leisure!.tr, rightTitle:"", isHaveLine: true, isHaveRightWidget: true,
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.leisure!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.checkingIn!.tr, rightTitle:"", isHaveLine: false, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.checkedIn!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
|
'images/icon_round_unSelet.png',
|
||||||
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
SizedBox(
|
||||||
|
height: 60.h,
|
||||||
),
|
),
|
||||||
SizedBox(height: 60.h,),
|
SubmitBtn(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.sure!.tr,
|
btnName: TranslationLoader.lanKeys!.sure!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,14 +38,17 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
height: 10.h,
|
height: 10.h,
|
||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.only(
|
||||||
|
left: 30.w, right: 30.w, top: 20.w, bottom: 20.w),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.normallyOpenModeTip!.tr)),
|
TranslationLoader.lanKeys!.normallyOpenModeTip!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -66,14 +69,14 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
SubmitBtn(
|
Container(
|
||||||
btnName: TranslationLoader.lanKeys!.save!.tr,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 30.h),
|
||||||
borderRadius: 20.w,
|
child: SubmitBtn(
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
btnName: TranslationLoader.lanKeys!.save!.tr,
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
onClick: () {
|
||||||
onClick: () {
|
// Navigator.pushNamed(context, Routers.nearbyLockPage);
|
||||||
// Navigator.pushNamed(context, Routers.nearbyLockPage);
|
}),
|
||||||
}),
|
),
|
||||||
],
|
],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -89,11 +92,11 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
Container(
|
Container(
|
||||||
height: 60.h,
|
height: 60.h,
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
padding: EdgeInsets.only(left: 20.h, top: 15.h),
|
padding: EdgeInsets.only(left: 30.w, top: 15.h),
|
||||||
child: Text(
|
child: Text(
|
||||||
"${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.date!.tr}",
|
"${TranslationLoader.lanKeys!.normallyOpen!.tr}${TranslationLoader.lanKeys!.date!.tr}",
|
||||||
style:
|
style:
|
||||||
TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600))),
|
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600))),
|
||||||
Container(
|
Container(
|
||||||
height: 90.h,
|
height: 90.h,
|
||||||
padding: EdgeInsets.only(left: 10.w, right: 10.w),
|
padding: EdgeInsets.only(left: 10.w, right: 10.w),
|
||||||
@ -141,15 +144,19 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () {},
|
onTap: () {},
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 70.h,
|
width: 40.w,
|
||||||
height: 70.h,
|
height: 40.w,
|
||||||
margin: EdgeInsets.all(10.h),
|
margin: EdgeInsets.all(10.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
// color: Colors.blue,
|
// color: Colors.blue,
|
||||||
border: Border.all(width: 1, color: Colors.grey),
|
border: Border.all(width: 1, color: AppColors.btnDisableColor),
|
||||||
borderRadius: BorderRadius.circular(60.w),
|
borderRadius: BorderRadius.circular(30.w),
|
||||||
),
|
),
|
||||||
child: Center(child: Text(dateStr)),
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
dateStr,
|
||||||
|
style: TextStyle(fontSize: 20.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -163,7 +170,7 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
),
|
),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.normallyOpen!.tr} ${TranslationLoader.lanKeys!.time!.tr}",
|
"${TranslationLoader.lanKeys!.normallyOpen!.tr}${TranslationLoader.lanKeys!.time!.tr}",
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
isHaveRightWidget: true,
|
isHaveRightWidget: true,
|
||||||
@ -171,14 +178,17 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
onTap: () {},
|
onTap: () {},
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.allDay!.tr),
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.allDay!.tr,
|
||||||
|
style: TextStyle(fontSize: 22.sp),
|
||||||
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 5.w,
|
width: 5.w,
|
||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
'images/icon_round_unSelet.png',
|
'images/icon_round_unSelet.png',
|
||||||
width: 40.w,
|
width: 30.w,
|
||||||
height: 40.w,
|
height: 30.w,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -191,14 +201,14 @@ class _NormallyOpenModePageState extends State<NormallyOpenModePage> {
|
|||||||
children: [
|
children: [
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.begin!.tr} ${TranslationLoader.lanKeys!.time!.tr}",
|
"${TranslationLoader.lanKeys!.begin!.tr}${TranslationLoader.lanKeys!.time!.tr}",
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
isHaveLine: true,
|
isHaveLine: true,
|
||||||
action: () {}),
|
action: () {}),
|
||||||
CommonItem(
|
CommonItem(
|
||||||
leftTitel:
|
leftTitel:
|
||||||
"${TranslationLoader.lanKeys!.end!.tr} ${TranslationLoader.lanKeys!.time!.tr}",
|
"${TranslationLoader.lanKeys!.end!.tr}${TranslationLoader.lanKeys!.time!.tr}",
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
isHaveDirection: true,
|
isHaveDirection: true,
|
||||||
action: () {}),
|
action: () {}),
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -20,37 +19,47 @@ class _RemoteUnlockingPageState extends State<RemoteUnlockingPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.remoteUnlocking!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.remoteUnlocking!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.remoteUnlockingPageTip!.tr)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.remoteUnlockingPageTip!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
"${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}",
|
||||||
|
style:
|
||||||
|
TextStyle(fontWeight: FontWeight.w600, fontSize: 22.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr,
|
height: 40.h,
|
||||||
borderRadius: 20.w,
|
|
||||||
fontSize: 32.sp,
|
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
|
||||||
onClick: () {
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.closed!.tr,
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -20,38 +19,63 @@ class _ResetButtonPageState extends State<ResetButtonPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.resetButton!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body:Container(
|
barTitle: TranslationLoader.lanKeys!.resetButton!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: Container(
|
||||||
padding: EdgeInsets.all(30.w),
|
padding: EdgeInsets.all(30.w),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.resetButtonTip!.tr)),
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.resetButtonTip1!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.resetButtonTip2!.tr,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 30.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: Text("${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", style: TextStyle(fontWeight: FontWeight.w600),)),
|
Expanded(
|
||||||
|
child: Text(
|
||||||
|
"${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}",
|
||||||
|
style:
|
||||||
|
TextStyle(fontWeight: FontWeight.w600, fontSize: 20.sp),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.closed!.tr,
|
height: 30.h,
|
||||||
|
),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.closed!.tr,
|
||||||
borderRadius: 20.w,
|
borderRadius: 20.w,
|
||||||
fontSize: 32.sp,
|
fontSize: 32.sp,
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
||||||
onClick: () {
|
onClick: () {}),
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,9 @@ class _UnlockQRCodePageState extends State<UnlockQRCodePage> {
|
|||||||
borderRadius: BorderRadius.all(Radius.circular(10.h)),
|
borderRadius: BorderRadius.all(Radius.circular(10.h)),
|
||||||
),
|
),
|
||||||
child: Text(
|
child: Text(
|
||||||
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边")),
|
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边",
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
)),
|
||||||
Container(
|
Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
padding: EdgeInsets.only(top: 50.w),
|
padding: EdgeInsets.only(top: 50.w),
|
||||||
@ -51,24 +53,22 @@ class _UnlockQRCodePageState extends State<UnlockQRCodePage> {
|
|||||||
// size:300,
|
// size:300,
|
||||||
// ),
|
// ),
|
||||||
// QrImage(data: 'www.baidu.com', size: 300.w),
|
// QrImage(data: 'www.baidu.com', size: 300.w),
|
||||||
QrImageView(data: 'www.baidu.com', size: 300.w),
|
QrImageView(data: 'www.baidu.com', size: 260.w),
|
||||||
SizedBox(height: 50.w,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: TranslationLoader.lanKeys!.share!.tr,
|
height: 50.w,
|
||||||
borderRadius: 20.w,
|
|
||||||
fontSize: 32.sp,
|
|
||||||
width: 250.w,
|
|
||||||
// margin: EdgeInsets.only(left: 03.w, right: 30.w, top: 20.w),
|
|
||||||
padding: EdgeInsets.only(top: 20.w, bottom: 20.w),
|
|
||||||
onClick: () {
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
),
|
||||||
SizedBox(height: 60.w,)
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
child: SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.share!.tr,
|
||||||
|
onClick: () {}),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 60.w,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
)
|
)),
|
||||||
),
|
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,69 +12,87 @@ class AddWirelessKeyboardPage extends StatefulWidget {
|
|||||||
const AddWirelessKeyboardPage({Key? key}) : super(key: key);
|
const AddWirelessKeyboardPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<AddWirelessKeyboardPage> createState() => _AddWirelessKeyboardPageState();
|
State<AddWirelessKeyboardPage> createState() =>
|
||||||
|
_AddWirelessKeyboardPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AddWirelessKeyboardPageState extends State<AddWirelessKeyboardPage> {
|
class _AddWirelessKeyboardPageState extends State<AddWirelessKeyboardPage> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
|
body: ListView(
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 100.h,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.lightTouchScreen!.tr,
|
||||||
|
style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 90.h,
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/main/icon_addWirelessKeyboardTip.png',
|
||||||
|
width: 260.w,
|
||||||
|
height: 260.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 90.h,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 90.h,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
child: SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.next!.tr,
|
||||||
|
onClick: () {
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context, Routers.seletWirelessKeyboardPage);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
|
child: SubmitBtn(
|
||||||
|
btnName: TranslationLoader.lanKeys!.theScreenNeverFlickered!.tr,
|
||||||
|
onClick: () {
|
||||||
|
Navigator.pushNamed(
|
||||||
|
context, Routers.addWirelessKeyboardScreenNotLightOnPage);
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
void onShow() {}
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
void onHide() {}
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
|
||||||
body: ListView(
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
SizedBox(height: 100.h,),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(TranslationLoader.lanKeys!.lightTouchScreen!.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
SizedBox(height: 90.h,),
|
|
||||||
Image.asset('images/main/icon_addWirelessKeyboardTip.png', width: 300.w, height: 300.w,),
|
|
||||||
SizedBox(height: 90.h,),
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
SizedBox(height: 90.h,),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName: TranslationLoader.lanKeys!.next!.tr,
|
|
||||||
borderRadius: 10.w,
|
|
||||||
fontSize: 28.sp,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 15.w, bottom: 15.w),
|
|
||||||
onClick: (){
|
|
||||||
Navigator.pushNamed(context, Routers.seletWirelessKeyboardPage);
|
|
||||||
}
|
|
||||||
),
|
|
||||||
// SizedBox(height: 20.h,),
|
|
||||||
SubmitBtn(
|
|
||||||
btnName:TranslationLoader.lanKeys!.theScreenNeverFlickered!.tr,
|
|
||||||
borderRadius: 10.w,
|
|
||||||
fontSize: 28.sp,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 15.w, bottom: 15.w),
|
|
||||||
onClick: (){
|
|
||||||
Navigator.pushNamed(context, Routers.addWirelessKeyboardScreenNotLightOnPage);
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void onShow(){
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void onHide(){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,64 +12,88 @@ class AddWirelessKeyboardScreenNotLightOnPage extends StatefulWidget {
|
|||||||
const AddWirelessKeyboardScreenNotLightOnPage({Key? key}) : super(key: key);
|
const AddWirelessKeyboardScreenNotLightOnPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<AddWirelessKeyboardScreenNotLightOnPage> createState() => _AddWirelessKeyboardScreenNotLightOnPageState();
|
State<AddWirelessKeyboardScreenNotLightOnPage> createState() =>
|
||||||
|
_AddWirelessKeyboardScreenNotLightOnPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AddWirelessKeyboardScreenNotLightOnPageState extends State<AddWirelessKeyboardScreenNotLightOnPage> {
|
class _AddWirelessKeyboardScreenNotLightOnPageState
|
||||||
|
extends State<AddWirelessKeyboardScreenNotLightOnPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
// mainAxisAlignment: MainAxisAlignment.center,
|
||||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 100.h,),
|
SizedBox(
|
||||||
|
height: 100.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.enterNumberOrPressSet!.tr, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w500),),
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.enterNumberOrPressSet!.tr,
|
||||||
|
style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text("(${TranslationLoader.lanKeys!.theLocationOfTheSetKeyWillBeDifferent!.tr})", style: TextStyle(fontSize: 26.sp, fontWeight: FontWeight.w500),),
|
Text(
|
||||||
|
"(${TranslationLoader.lanKeys!.theLocationOfTheSetKeyWillBeDifferent!.tr})",
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 90.h,),
|
SizedBox(
|
||||||
Image.asset('images/main/icon_addWirelessKeyboardUnLightOnTip.png', width: 300.w, height: 300.w,),
|
height: 90.h,
|
||||||
SizedBox(height: 90.h,),
|
),
|
||||||
|
Image.asset(
|
||||||
|
'images/main/icon_addWirelessKeyboardUnLightOnTip.png',
|
||||||
|
width: 260.w,
|
||||||
|
height: 260.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 90.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500),),
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.whenScreenFlashesClickNext!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 22.sp, color: AppColors.darkGrayTextColor),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 90.h,),
|
SizedBox(
|
||||||
SubmitBtn(
|
height: 90.h,
|
||||||
btnName: TranslationLoader.lanKeys!.next!.tr,
|
),
|
||||||
borderRadius: 10.w,
|
Container(
|
||||||
fontSize: 28.sp,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
child: SubmitBtn(
|
||||||
padding: EdgeInsets.only(top: 15.w, bottom: 15.w),
|
btnName: TranslationLoader.lanKeys!.next!.tr,
|
||||||
onClick: (){
|
onClick: () {
|
||||||
Navigator.pushNamed(context, Routers.seletWirelessKeyboardPage);
|
Navigator.pushNamed(
|
||||||
}
|
context, Routers.seletWirelessKeyboardPage);
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onShow(){
|
void onShow() {}
|
||||||
|
|
||||||
}
|
void onHide() {}
|
||||||
|
|
||||||
void onHide(){
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -11,7 +10,8 @@ class SeletWirelessKeyboardPage extends StatefulWidget {
|
|||||||
const SeletWirelessKeyboardPage({Key? key}) : super(key: key);
|
const SeletWirelessKeyboardPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<SeletWirelessKeyboardPage> createState() => _SeletWirelessKeyboardPageState();
|
State<SeletWirelessKeyboardPage> createState() =>
|
||||||
|
_SeletWirelessKeyboardPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _SeletWirelessKeyboardPageState extends State<SeletWirelessKeyboardPage> {
|
class _SeletWirelessKeyboardPageState extends State<SeletWirelessKeyboardPage> {
|
||||||
@ -19,19 +19,23 @@ class _SeletWirelessKeyboardPageState extends State<SeletWirelessKeyboardPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.selet!.tr} ${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.selet!.tr}${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: ListView.builder(
|
body: ListView.builder(
|
||||||
itemCount:20,
|
itemCount: 20,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", (){
|
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () {
|
||||||
// Navigator.pushNamed(context, Routers.saveLockPage);
|
// Navigator.pushNamed(context, Routers.saveLockPage);
|
||||||
});
|
});
|
||||||
}
|
}),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget nearbyLockItem(String lockTypeIcon, String lockTypeTitle, Function() action){
|
Widget nearbyLockItem(
|
||||||
|
String lockTypeIcon, String lockTypeTitle, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -44,31 +48,41 @@ class _SeletWirelessKeyboardPageState extends State<SeletWirelessKeyboardPage> {
|
|||||||
children: [
|
children: [
|
||||||
// SizedBox(width:20.w),
|
// SizedBox(width:20.w),
|
||||||
// Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
// Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Image.asset('images/main/icon_main_addLock.png', width: 50.w, height: 50.w,),
|
Image.asset(
|
||||||
SizedBox(width:30.w),
|
'images/main/icon_main_addLock.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
|
SizedBox(width: 30.w),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(height: 0.5.h, color: Colors.grey,)
|
Container(
|
||||||
|
height: 0.5.h,
|
||||||
|
color: Colors.grey,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onShow(){
|
void onShow() {}
|
||||||
}
|
|
||||||
|
|
||||||
void onHide(){
|
void onHide() {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -21,56 +20,72 @@ class _WirelessKeyboardPageState extends State<WirelessKeyboardPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.wirelessKeyboard!.tr, haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
TextButton(
|
barTitle: TranslationLoader.lanKeys!.wirelessKeyboard!.tr,
|
||||||
child: Text(TranslationLoader.lanKeys!.reset!.tr, style: const TextStyle(color: Colors.white),),
|
haveBack: true,
|
||||||
onPressed: (){
|
backgroundColor: AppColors.mainColor,
|
||||||
|
actionsList: [
|
||||||
},),
|
TextButton(
|
||||||
],),
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.reset!.tr,
|
||||||
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
|
),
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(child: _buildMainUI()),
|
Expanded(child: _buildMainUI()),
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName: "${TranslationLoader.lanKeys!.add!.tr} ${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}",
|
btnName:
|
||||||
borderRadius: 20.w,
|
"${TranslationLoader.lanKeys!.add!.tr}${TranslationLoader.lanKeys!.wirelessKeyboard!.tr}",
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
onClick: () {
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: (){
|
|
||||||
Navigator.pushNamed(context, Routers.addWirelessKeyboardPage);
|
Navigator.pushNamed(context, Routers.addWirelessKeyboardPage);
|
||||||
}
|
}),
|
||||||
),
|
SizedBox(
|
||||||
|
height: 40.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI(){
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount:10,
|
itemCount: 10,
|
||||||
itemBuilder: (c, index){
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三", "2023.6.21 11.15", "2023.6.21 11.15",(){
|
return _electronicKeyItem('images/icon_password.png', "张三",
|
||||||
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle, String beginTime, String endTime, Function() action){
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
|
String beginTime, String endTime, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 90.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 30.w,),
|
SizedBox(
|
||||||
Image.asset(lockTypeIcon, width: 50.w, height: 50.w,),
|
width: 30.w,
|
||||||
SizedBox(width: 30.w,),
|
),
|
||||||
|
Image.asset(
|
||||||
|
lockTypeIcon,
|
||||||
|
width: 40.w,
|
||||||
|
height: 40.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20.w,
|
||||||
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@ -80,26 +95,33 @@ class _WirelessKeyboardPageState extends State<WirelessKeyboardPage> {
|
|||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(lockTypeTitle, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w500), ),
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
|
),
|
||||||
// SizedBox(width:20.w),
|
// SizedBox(width:20.w),
|
||||||
// Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
// Text("待接收", style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500), ),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.h),
|
||||||
Container(
|
Row(
|
||||||
child: Row(
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
children: [
|
||||||
children: [
|
Text(
|
||||||
Text("2023.6.21 11.15", style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500), ),
|
"2023.6.21 11.15",
|
||||||
],
|
style: TextStyle(
|
||||||
),
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
// SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -24,6 +24,29 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
barTitle: TranslationLoader.lanKeys!.operatingRecord!.tr,
|
barTitle: TranslationLoader.lanKeys!.operatingRecord!.tr,
|
||||||
haveBack: true,
|
haveBack: true,
|
||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
|
actionsList: [
|
||||||
|
IconButton(
|
||||||
|
icon: Image.asset(
|
||||||
|
'images/icon_bar_more.png',
|
||||||
|
height: 30.h,
|
||||||
|
width: 10.w,
|
||||||
|
),
|
||||||
|
onPressed: () {
|
||||||
|
JhPopMenus.showLinePop(context, clickCallback: (index, selText) {
|
||||||
|
print('选中index: $index');
|
||||||
|
print('选中text: $selText');
|
||||||
|
|
||||||
|
if (selText == '添加朋友') {
|
||||||
|
// JhNavUtils.pushNamed(context, 'WxAddFriendPage');
|
||||||
|
}
|
||||||
|
if (selText == '扫一扫') {
|
||||||
|
// _scan();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
/*
|
||||||
actionsList: [
|
actionsList: [
|
||||||
TextButton(
|
TextButton(
|
||||||
child: const Text(
|
child: const Text(
|
||||||
@ -45,6 +68,7 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
*/
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
@ -54,7 +78,7 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.lockOperatingRecordTip!.tr,
|
TranslationLoader.lanKeys!.lockOperatingRecordTip!.tr,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
style: TextStyle(fontSize: 24.sp),
|
style: TextStyle(fontSize: 20.sp),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
_searchWidget(),
|
_searchWidget(),
|
||||||
@ -67,7 +91,7 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
Widget _searchWidget() {
|
Widget _searchWidget() {
|
||||||
return Container(
|
return Container(
|
||||||
height: 60.h,
|
height: 60.h,
|
||||||
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 10.w),
|
margin: EdgeInsets.only(left: 20.w, right: 10.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white, borderRadius: BorderRadius.circular(5)),
|
color: Colors.white, borderRadius: BorderRadius.circular(5)),
|
||||||
child: TextField(
|
child: TextField(
|
||||||
@ -106,8 +130,8 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
if (index % 2 == 0) {
|
if (index % 2 == 0) {
|
||||||
return _dateItem("2023-06-29");
|
return _dateItem("2023-06-29");
|
||||||
} else {
|
} else {
|
||||||
return _operatingRecordItem('images/controls_user.png', "张三",
|
return _operatingRecordItem('images/controls_user.png',
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"186823150237", "17:56:08用APP开锁", "", () {
|
||||||
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
// Navigator.pushNamed(context, Routers.electronicKeyDetailPage);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -116,14 +140,14 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
|
|
||||||
Widget _dateItem(String lockDate) {
|
Widget _dateItem(String lockDate) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 70.h,
|
height: 60.h,
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
padding: EdgeInsets.only(left: 20.h, right: 20.h),
|
padding: EdgeInsets.only(left: 20.h, right: 20.h),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
lockDate,
|
lockDate,
|
||||||
style: TextStyle(fontSize: 28.sp),
|
style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -143,16 +167,13 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
|
||||||
width: 20.w,
|
|
||||||
),
|
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 50.w,
|
||||||
height: 50.w,
|
height: 50.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -163,7 +184,7 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp, color: AppColors.blackColor),
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -173,9 +194,9 @@ class _LockOperatingRecordPageState extends State<LockOperatingRecordPage> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15-2023.6.21 11.15",
|
"17:56:08用APP开锁",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp,
|
fontSize: 20.sp,
|
||||||
color: AppColors.darkGrayTextColor),
|
color: AppColors.darkGrayTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -10,14 +10,15 @@ import '../../../../translations/trans_lib.dart';
|
|||||||
class OtherTypeAddKeyPage extends StatefulWidget {
|
class OtherTypeAddKeyPage extends StatefulWidget {
|
||||||
final String seletType;
|
final String seletType;
|
||||||
final int lockType;
|
final int lockType;
|
||||||
const OtherTypeAddKeyPage({Key? key, required this.seletType, required this.lockType}) : super(key: key);
|
const OtherTypeAddKeyPage(
|
||||||
|
{Key? key, required this.seletType, required this.lockType})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<OtherTypeAddKeyPage> createState() => _OtherTypeAddKeyPageState();
|
State<OtherTypeAddKeyPage> createState() => _OtherTypeAddKeyPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
||||||
|
|
||||||
final TextEditingController _controller = TextEditingController();
|
final TextEditingController _controller = TextEditingController();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -25,7 +26,7 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
return indexChangeWidget();
|
return indexChangeWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget indexChangeWidget(){
|
Widget indexChangeWidget() {
|
||||||
switch (int.parse(widget.seletType)) {
|
switch (int.parse(widget.seletType)) {
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
@ -33,7 +34,11 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
// return sendElectronicKeySucceed();
|
// return sendElectronicKeySucceed();
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr,
|
||||||
|
TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
||||||
|
SizedBox(
|
||||||
|
height: 30.h,
|
||||||
|
),
|
||||||
keyBottomWidget()
|
keyBottomWidget()
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -43,8 +48,12 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
// 限时
|
// 限时
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr,
|
||||||
|
TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
||||||
keyTimeLimitWidget(),
|
keyTimeLimitWidget(),
|
||||||
|
SizedBox(
|
||||||
|
height: 30.h,
|
||||||
|
),
|
||||||
keyBottomWidget()
|
keyBottomWidget()
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -54,47 +63,68 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
// 循环
|
// 循环
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr, TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
perpetualKeyWidget(TranslationLoader.lanKeys!.name!.tr,
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"", isHaveDirection: true, action:(){
|
TranslationLoader.lanKeys!.pleaseEnter!.tr, _controller),
|
||||||
// _showDatePicker();
|
CommonItem(
|
||||||
}),
|
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
// _showDatePicker();
|
||||||
|
}),
|
||||||
|
SizedBox(
|
||||||
|
height: 30.h,
|
||||||
|
),
|
||||||
keyBottomWidget()
|
keyBottomWidget()
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 密码命名输入框
|
// 密码命名输入框
|
||||||
Widget perpetualKeyWidget(String titleStr, String rightTitle, TextEditingController controller){
|
Widget perpetualKeyWidget(
|
||||||
|
String titleStr, String rightTitle, TextEditingController controller) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
CommonItem(leftTitel:titleStr, rightTitle:"", isHaveRightWidget: true, rightWidget: getTFWidget(rightTitle)),
|
CommonItem(
|
||||||
|
leftTitel: titleStr,
|
||||||
|
rightTitle: "",
|
||||||
|
isHaveRightWidget: true,
|
||||||
|
rightWidget: getTFWidget(rightTitle)),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 限时顶部选择日期
|
// 限时顶部选择日期
|
||||||
Widget keyTimeLimitWidget(){
|
Widget keyTimeLimitWidget() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.effectiveTime!.tr, rightTitle:"2020.06.20 11:49", isHaveLine: true, isHaveDirection: true, action:(){
|
CommonItem(
|
||||||
// _showDatePicker();
|
leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
|
||||||
}),
|
rightTitle: "2020.06.20 11:49",
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.failureTime!.tr, rightTitle:"2020.06.20 11:49", isHaveDirection: true, action:(){
|
isHaveLine: true,
|
||||||
// _showDatePicker();
|
isHaveDirection: true,
|
||||||
}),
|
action: () {
|
||||||
|
// _showDatePicker();
|
||||||
|
}),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
||||||
|
rightTitle: "2020.06.20 11:49",
|
||||||
|
isHaveDirection: true,
|
||||||
|
action: () {
|
||||||
|
// _showDatePicker();
|
||||||
|
}),
|
||||||
Container(height: 10.h),
|
Container(height: 10.h),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget keyBottomWidget(){
|
Widget keyBottomWidget() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
// Container(
|
// Container(
|
||||||
@ -106,17 +136,13 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
// ],
|
// ],
|
||||||
// ),
|
// ),
|
||||||
// ),
|
// ),
|
||||||
SubmitBtn(btnName: '${TranslationLoader.lanKeys!.getTip!.tr} ${getAppBarTitle(widget.lockType)}', borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
SubmitBtn(btnName: TranslationLoader.lanKeys!.next!.tr, onClick: () {}),
|
||||||
onClick: (){
|
|
||||||
|
|
||||||
}
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送电子钥匙成功
|
// 发送电子钥匙成功
|
||||||
Widget sendElectronicKeySucceed(){
|
Widget sendElectronicKeySucceed() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
@ -125,30 +151,67 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 30.h,),
|
SizedBox(
|
||||||
Image.asset('images/main/icon_main_addLock.png', width: 150.w, height: 150.w, color: AppColors.mainColor,),
|
height: 30.h,
|
||||||
SizedBox(height: 20.h,),
|
),
|
||||||
Text("操作成功,密码为",style: TextStyle(fontSize: 32.sp, color: Colors.black, fontWeight: FontWeight.w500),),
|
Image.asset(
|
||||||
SizedBox(height: 10.h,),
|
'images/main/icon_main_addLock.png',
|
||||||
Text("62689876",style: TextStyle(fontSize: 60.sp, color: Colors.black, fontWeight: FontWeight.w500),),
|
width: 150.w,
|
||||||
|
height: 150.w,
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"操作成功,密码为",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 32.sp,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
"62689876",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 60.sp,
|
||||||
|
color: Colors.black,
|
||||||
|
fontWeight: FontWeight.w500),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
SubmitBtn(btnName: '完成', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){
|
height: 20.h,
|
||||||
|
),
|
||||||
}),
|
SubmitBtn(
|
||||||
SubmitBtn(btnName: '分享', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){
|
btnName: '完成',
|
||||||
|
fontSize: 28.sp,
|
||||||
}),
|
borderRadius: 20.w,
|
||||||
SubmitBtn(btnName: '标记为:已入住', fontSize: 28.sp, borderRadius: 20.w, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: (){
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
}),
|
onClick: () {}),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: '分享',
|
||||||
|
fontSize: 28.sp,
|
||||||
|
borderRadius: 20.w,
|
||||||
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
onClick: () {}),
|
||||||
|
SubmitBtn(
|
||||||
|
btnName: '标记为:已入住',
|
||||||
|
fontSize: 28.sp,
|
||||||
|
borderRadius: 20.w,
|
||||||
|
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
||||||
|
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String getAppBarTitle(int type){
|
String getAppBarTitle(int type) {
|
||||||
String title;
|
String title;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -168,10 +231,10 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 接受者信息输入框
|
// 接受者信息输入框
|
||||||
Widget getTFWidget(String tfStr){
|
Widget getTFWidget(String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 500.w,
|
width: 300.w,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
@ -180,20 +243,22 @@ class _OtherTypeAddKeyPageState extends State<OtherTypeAddKeyPage> {
|
|||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
// controller: _controller,
|
// controller: _controller,
|
||||||
autofocus: false,
|
autofocus: false,
|
||||||
textAlign:TextAlign.end,
|
textAlign: TextAlign.end,
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(fontSize: 24.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 10.w,),
|
SizedBox(
|
||||||
|
width: 10.w,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@ class _OtherTypeKeyDetailPageState extends State<OtherTypeKeyDetailPage> {
|
|||||||
TextButton(
|
TextButton(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.share!.tr,
|
TranslationLoader.lanKeys!.share!.tr,
|
||||||
style: const TextStyle(color: Colors.white),
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
onPressed: () {},
|
onPressed: () {},
|
||||||
),
|
),
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
TextButton(
|
TextButton(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.reset!.tr,
|
TranslationLoader.lanKeys!.reset!.tr,
|
||||||
style: const TextStyle(color: Colors.white),
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
onPressed: () {},
|
onPressed: () {},
|
||||||
),
|
),
|
||||||
@ -38,18 +38,54 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
_searchWidget(),
|
_searchWidget(),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Expanded(child: _buildMainUI(type)),
|
Expanded(child: _buildMainUI(type)),
|
||||||
SubmitBtn(
|
GestureDetector(
|
||||||
btnName:
|
child: Container(
|
||||||
'${TranslationLoader.lanKeys!.getTip!.tr} ${getAppBarTitle(type)}',
|
height: 80.h,
|
||||||
borderRadius: 20.w,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
margin: EdgeInsets.only(
|
decoration: BoxDecoration(
|
||||||
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
color: Colors.white,
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
borderRadius: BorderRadius.circular(8.w)),
|
||||||
onClick: () {
|
child: Row(
|
||||||
Navigator.pushNamed(context, Routers.otherTypeKeyManagePage,
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
arguments: type);
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
}),
|
children: [
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_btn_add.png',
|
||||||
|
width: 28.w,
|
||||||
|
height: 28.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 6.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
'${TranslationLoader.lanKeys!.add!.tr}${getAppBarTitle(type)}',
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pushNamed(context, Routers.otherTypeKeyManagePage,
|
||||||
|
arguments: type);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
// SubmitBtn(
|
||||||
|
// btnName:
|
||||||
|
// '${TranslationLoader.lanKeys!.add!.tr}${getAppBarTitle(type)}',
|
||||||
|
// onClick: () {
|
||||||
|
// Navigator.pushNamed(context, Routers.otherTypeKeyManagePage,
|
||||||
|
// arguments: type);
|
||||||
|
// }),
|
||||||
|
SizedBox(
|
||||||
|
height: 64.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -109,15 +145,34 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI(int type) {
|
Widget _buildMainUI(int type) {
|
||||||
return ListView.builder(
|
String typeImgName = "";
|
||||||
itemCount: 10,
|
if (type == 0) {
|
||||||
itemBuilder: (c, index) {
|
//卡
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三",
|
typeImgName = 'images/icon_card.png';
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
} else if (type == 1) {
|
||||||
Navigator.pushNamed(context, Routers.otherTypeKeyDetailPage,
|
//指纹
|
||||||
arguments: type);
|
typeImgName = 'images/icon_fingerprint.png';
|
||||||
});
|
} else {
|
||||||
|
//遥控
|
||||||
|
typeImgName = 'images/icon_card.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
return ListView.separated(
|
||||||
|
itemCount: 5,
|
||||||
|
itemBuilder: (c, index) {
|
||||||
|
return _electronicKeyItem(
|
||||||
|
typeImgName, "张三", "2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
|
Navigator.pushNamed(context, Routers.otherTypeKeyDetailPage,
|
||||||
|
arguments: type);
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
|
return const Divider(
|
||||||
|
height: 1,
|
||||||
|
color: AppColors.greyLineColor,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
@ -125,8 +180,8 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 90.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
@ -138,11 +193,11 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 60.w,
|
||||||
height: 50.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -154,7 +209,7 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 32.sp, fontWeight: FontWeight.w500),
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -164,9 +219,10 @@ class _OtherTypeKeyListPageState extends State<OtherTypeKeyListPage> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15 永久",
|
"2023.6.21 18:26 永久",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp, fontWeight: FontWeight.w500),
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -14,14 +14,18 @@ class OtherTypeKeyManagePage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _OtherTypeKeyManagePageState extends State<OtherTypeKeyManagePage> {
|
class _OtherTypeKeyManagePageState extends State<OtherTypeKeyManagePage> {
|
||||||
var index=0;
|
var index = 0;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var lockType = ModalRoute.of(context)?.settings.arguments as int;
|
var lockType = ModalRoute.of(context)?.settings.arguments as int;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "${TranslationLoader.lanKeys!.addTip!.tr} ${getAppBarTitle(lockType)}", haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle:
|
||||||
|
"${TranslationLoader.lanKeys!.addTip!.tr}${getAppBarTitle(lockType)}",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
OtherTypeKeyManageTabbar(initialIndex: index, lockType: lockType),
|
OtherTypeKeyManageTabbar(initialIndex: index, lockType: lockType),
|
||||||
@ -30,7 +34,7 @@ class _OtherTypeKeyManagePageState extends State<OtherTypeKeyManagePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String getAppBarTitle(int type){
|
String getAppBarTitle(int type) {
|
||||||
String title = "";
|
String title = "";
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -47,5 +51,4 @@ class _OtherTypeKeyManagePageState extends State<OtherTypeKeyManagePage> {
|
|||||||
}
|
}
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,15 +8,19 @@ import '../../../../translations/trans_lib.dart';
|
|||||||
import '../otherTypeAddKey/otherTypeAddKey_page.dart';
|
import '../otherTypeAddKey/otherTypeAddKey_page.dart';
|
||||||
|
|
||||||
class OtherTypeKeyManageTabbar extends StatefulWidget {
|
class OtherTypeKeyManageTabbar extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
var lockType=0;
|
var lockType = 0;
|
||||||
OtherTypeKeyManageTabbar({Key? key, required this.initialIndex, required this.lockType}) : super(key: key);
|
OtherTypeKeyManageTabbar(
|
||||||
|
{Key? key, required this.initialIndex, required this.lockType})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<OtherTypeKeyManageTabbar> createState() => _OtherTypeKeyManageTabbarState();
|
State<OtherTypeKeyManageTabbar> createState() =>
|
||||||
|
_OtherTypeKeyManageTabbarState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _OtherTypeKeyManageTabbarState extends State<OtherTypeKeyManageTabbar> with SingleTickerProviderStateMixin {
|
class _OtherTypeKeyManageTabbarState extends State<OtherTypeKeyManageTabbar>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs = <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
@ -29,45 +33,64 @@ class _OtherTypeKeyManageTabbarState extends State<OtherTypeKeyManageTabbar> wit
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 28.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Tab _tab(ItemView item) {
|
Tab _tab(ItemView item) {
|
||||||
return Tab(child: SizedBox(width: 1.sw/5, child: Text(item.title, textAlign: TextAlign.center)));
|
return Tab(
|
||||||
|
child: SizedBox(
|
||||||
|
width: 1.sw / 5,
|
||||||
|
child: Text(item.title, textAlign: TextAlign.center)));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => OtherTypeAddKeyPage(seletType: item.seletType, lockType: widget.lockType,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => OtherTypeAddKeyPage(
|
||||||
|
seletType: item.seletType,
|
||||||
|
lockType: widget.lockType,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,9 +28,9 @@ class _PasswordKeyDetailPageState extends State<PasswordKeyDetailPage> {
|
|||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
actionsList: [
|
actionsList: [
|
||||||
TextButton(
|
TextButton(
|
||||||
child: const Text(
|
child: Text(
|
||||||
"分享",
|
"分享",
|
||||||
style: TextStyle(color: Colors.white),
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
onPressed: () {},
|
onPressed: () {},
|
||||||
),
|
),
|
||||||
|
|||||||
@ -28,7 +28,7 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
TextButton(
|
TextButton(
|
||||||
child: Text(
|
child: Text(
|
||||||
TranslationLoader.lanKeys!.reset!.tr,
|
TranslationLoader.lanKeys!.reset!.tr,
|
||||||
style: const TextStyle(color: Colors.white),
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
),
|
),
|
||||||
onPressed: () {},
|
onPressed: () {},
|
||||||
),
|
),
|
||||||
@ -37,16 +37,59 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
_searchWidget(),
|
_searchWidget(),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Expanded(child: _buildMainUI()),
|
Expanded(child: _buildMainUI()),
|
||||||
SubmitBtn(
|
SizedBox(
|
||||||
btnName: TranslationLoader.lanKeys!.getPassword!.tr,
|
height: 20.h,
|
||||||
borderRadius: 20.w,
|
),
|
||||||
margin: EdgeInsets.only(
|
GestureDetector(
|
||||||
left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
child: Container(
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
height: 80.h,
|
||||||
onClick: () {
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
Navigator.pushNamed(context, Routers.passwordKeyManagePage);
|
decoration: BoxDecoration(
|
||||||
}),
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(8.w)),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_btn_add.png',
|
||||||
|
width: 28.w,
|
||||||
|
height: 28.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 6.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.getPassword!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.bold),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pushNamed(context, Routers.passwordKeyManagePage);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
|
||||||
|
// SubmitBtn(
|
||||||
|
// btnName: TranslationLoader.lanKeys!.getPassword!.tr,
|
||||||
|
// borderRadius: 20.w,
|
||||||
|
// margin: EdgeInsets.only(
|
||||||
|
// left: 30.w, right: 30.w, top: 30.w, bottom: 30.w),
|
||||||
|
// padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
||||||
|
// onClick: () {
|
||||||
|
// Navigator.pushNamed(context, Routers.passwordKeyManagePage);
|
||||||
|
// }),
|
||||||
|
SizedBox(
|
||||||
|
height: 42.h,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -88,14 +131,21 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.separated(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/icon_lock.png', "张三",
|
return _electronicKeyItem('images/icon_password.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
Navigator.pushNamed(context, Routers.passwordKeyDetailPage);
|
Navigator.pushNamed(context, Routers.passwordKeyDetailPage);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
|
return const Divider(
|
||||||
|
height: 1,
|
||||||
|
color: AppColors.greyLineColor,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
@ -103,12 +153,9 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 90.h,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
// margin: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.w),
|
||||||
decoration: BoxDecoration(
|
color: Colors.white,
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
|
||||||
),
|
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(
|
SizedBox(
|
||||||
@ -116,11 +163,11 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 50.w,
|
width: 60.w,
|
||||||
height: 50.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -132,7 +179,7 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 32.sp, fontWeight: FontWeight.w500),
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -142,9 +189,10 @@ class _PasswordKeyListPageState extends State<PasswordKeyListPage> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15 永久",
|
"2023.6.21 18:00 清空码",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 28.sp, fontWeight: FontWeight.w500),
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -8,14 +8,18 @@ import '../../../../translations/trans_lib.dart';
|
|||||||
import '../passwordKey_Perpetual/passwordKey_perpetual_page.dart';
|
import '../passwordKey_Perpetual/passwordKey_perpetual_page.dart';
|
||||||
|
|
||||||
class PasswordKeyManageTabbarPage extends StatefulWidget {
|
class PasswordKeyManageTabbarPage extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
|
|
||||||
PasswordKeyManageTabbarPage({Key? key, required this.initialIndex}) : super(key: key);
|
PasswordKeyManageTabbarPage({Key? key, required this.initialIndex})
|
||||||
|
: super(key: key);
|
||||||
@override
|
@override
|
||||||
State<PasswordKeyManageTabbarPage> createState() => _PasswordKeyManageTabbarPageState();
|
State<PasswordKeyManageTabbarPage> createState() =>
|
||||||
|
_PasswordKeyManageTabbarPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _PasswordKeyManageTabbarPageState extends State<PasswordKeyManageTabbarPage> with SingleTickerProviderStateMixin {
|
class _PasswordKeyManageTabbarPageState
|
||||||
|
extends State<PasswordKeyManageTabbarPage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs = <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
@ -31,33 +35,44 @@ class _PasswordKeyManageTabbarPageState extends State<PasswordKeyManageTabbarPag
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 28.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,19 +80,26 @@ class _PasswordKeyManageTabbarPageState extends State<PasswordKeyManageTabbarPag
|
|||||||
return Tab(
|
return Tab(
|
||||||
// text: item.title,
|
// text: item.title,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 1.sw/8,
|
width: 1.sw / 8,
|
||||||
// margin: EdgeInsets.all(10.w),
|
// margin: EdgeInsets.all(10.w),
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Text(item.title, textAlign: TextAlign.center,),
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => PasswordKeyPerpetualPage(type: item.type,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => PasswordKeyPerpetualPage(
|
||||||
|
type: item.type,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,7 +49,6 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
// 限时
|
// 限时
|
||||||
@ -64,7 +63,6 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
// 单次
|
// 单次
|
||||||
@ -78,7 +76,6 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
// 自定义
|
// 自定义
|
||||||
@ -95,7 +92,6 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
// 循环
|
// 循环
|
||||||
@ -110,7 +106,6 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
// 清空
|
// 清空
|
||||||
@ -124,10 +119,8 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return Container();
|
return Container();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,78 +129,91 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
String titleStr, String rightTitle, TextEditingController controller) {
|
String titleStr, String rightTitle, TextEditingController controller) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Container(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
CommonItem(
|
Container(
|
||||||
leftTitel: titleStr,
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
rightTitle: "",
|
child: CommonItem(
|
||||||
isHaveRightWidget: true,
|
leftTitel: titleStr,
|
||||||
rightWidget: getTFWidget(rightTitle)),
|
rightTitle: "",
|
||||||
Container(height: 10.h),
|
isHaveRightWidget: true,
|
||||||
|
rightWidget: getTFWidget(rightTitle)),
|
||||||
|
),
|
||||||
|
SizedBox(height: 10.h),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 限时顶部选择日期
|
// 限时顶部选择日期
|
||||||
Widget keyTimeLimitWidget() {
|
Widget keyTimeLimitWidget() {
|
||||||
return Column(
|
return Container(
|
||||||
children: [
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
CommonItem(
|
child: Column(
|
||||||
leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
|
children: [
|
||||||
rightTitle: "2020.06.20 11:49",
|
CommonItem(
|
||||||
isHaveLine: true,
|
leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
|
||||||
isHaveDirection: true,
|
rightTitle: "2020.06.20 11:49",
|
||||||
action: () {
|
isHaveLine: true,
|
||||||
// _showDatePicker();
|
isHaveDirection: true,
|
||||||
}),
|
action: () {
|
||||||
CommonItem(
|
// _showDatePicker();
|
||||||
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
}),
|
||||||
rightTitle: "2020.06.20 11:49",
|
CommonItem(
|
||||||
isHaveDirection: true,
|
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
||||||
action: () {
|
rightTitle: "2020.06.20 11:49",
|
||||||
// _showDatePicker();
|
isHaveDirection: true,
|
||||||
}),
|
action: () {
|
||||||
Container(height: 10.h),
|
// _showDatePicker();
|
||||||
],
|
}),
|
||||||
|
Container(height: 10.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自定义是否永久
|
// 自定义是否永久
|
||||||
Widget keyIfPerpetualWidget() {
|
Widget keyIfPerpetualWidget() {
|
||||||
return Column(
|
return Container(
|
||||||
children: [
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
CommonItem(
|
child: Column(
|
||||||
leftTitel: TranslationLoader.lanKeys!.permanent!.tr,
|
children: [
|
||||||
rightTitle: "",
|
CommonItem(
|
||||||
isHaveRightWidget: true,
|
leftTitel: TranslationLoader.lanKeys!.permanent!.tr,
|
||||||
rightWidget: Container(width: 80.w, height: 50.h, child: _switch()),
|
rightTitle: "",
|
||||||
action: () {}),
|
isHaveRightWidget: true,
|
||||||
Container(height: 10.h),
|
rightWidget:
|
||||||
],
|
Container(width: 80.w, height: 50.h, child: _switch()),
|
||||||
|
action: () {}),
|
||||||
|
Container(height: 10.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 循环
|
// 循环
|
||||||
Widget keyCirculationWidget() {
|
Widget keyCirculationWidget() {
|
||||||
return Column(
|
return Container(
|
||||||
children: [
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
CommonItem(
|
child: Column(
|
||||||
leftTitel: TranslationLoader.lanKeys!.recursiveDevice!.tr,
|
children: [
|
||||||
rightTitle: "周末",
|
CommonItem(
|
||||||
isHaveLine: true,
|
leftTitel: TranslationLoader.lanKeys!.recursiveDevice!.tr,
|
||||||
isHaveDirection: true,
|
rightTitle: "周末",
|
||||||
action: () {}),
|
isHaveLine: true,
|
||||||
CommonItem(
|
isHaveDirection: true,
|
||||||
leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
|
action: () {}),
|
||||||
rightTitle: "10:00",
|
CommonItem(
|
||||||
isHaveLine: true,
|
leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr,
|
||||||
isHaveDirection: true,
|
rightTitle: "10:00",
|
||||||
action: () {}),
|
isHaveLine: true,
|
||||||
CommonItem(
|
isHaveDirection: true,
|
||||||
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
action: () {}),
|
||||||
rightTitle: "11:00",
|
CommonItem(
|
||||||
isHaveDirection: true,
|
leftTitel: TranslationLoader.lanKeys!.failureTime!.tr,
|
||||||
action: () {}),
|
rightTitle: "11:00",
|
||||||
],
|
isHaveDirection: true,
|
||||||
|
action: () {}),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,15 +229,16 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
child: Text(
|
child: Text(
|
||||||
tipStr,
|
tipStr,
|
||||||
textAlign: TextAlign.start,
|
textAlign: TextAlign.start,
|
||||||
|
style: TextStyle(fontSize: 20.sp),
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
SubmitBtn(
|
SubmitBtn(
|
||||||
btnName: TranslationLoader.lanKeys!.getPassword!.tr,
|
btnName: TranslationLoader.lanKeys!.getPassword!.tr,
|
||||||
borderRadius: 20.w,
|
|
||||||
margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 30.w),
|
|
||||||
padding: EdgeInsets.only(top: 25.w, bottom: 25.w),
|
|
||||||
onClick: () {}),
|
onClick: () {}),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
@ -313,7 +320,7 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
Widget getTFWidget(String tfStr) {
|
Widget getTFWidget(String tfStr) {
|
||||||
return Container(
|
return Container(
|
||||||
height: 50.h,
|
height: 50.h,
|
||||||
width: 500.w,
|
width: 300.w,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
@ -327,6 +334,7 @@ class _PasswordKeyPerpetualPageState extends State<PasswordKeyPerpetualPage> {
|
|||||||
//输入里面输入文字内边距设置
|
//输入里面输入文字内边距设置
|
||||||
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
contentPadding: const EdgeInsets.only(top: 12.0, bottom: 8.0),
|
||||||
hintText: tfStr,
|
hintText: tfStr,
|
||||||
|
hintStyle: TextStyle(fontSize: 22.sp),
|
||||||
//不需要输入框下划线
|
//不需要输入框下划线
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
),
|
),
|
||||||
|
|||||||
@ -31,7 +31,6 @@ class _StarLockMainState extends State<StarLockMain> with BaseWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
||||||
// final logic = Get.put(GetxBle());
|
// final logic = Get.put(GetxBle());
|
||||||
// // Get.lazyPut(()=>GetxBle());
|
// // Get.lazyPut(()=>GetxBle());
|
||||||
// logic.scanner.startScan([]);
|
// logic.scanner.startScan([]);
|
||||||
@ -66,7 +65,7 @@ class _StarLockMainState extends State<StarLockMain> with BaseWidget {
|
|||||||
|
|
||||||
Widget getLockList() {
|
Widget getLockList() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () {
|
return nearbyLockItem('images/icon_lock.png', "MCBN01-ea9240", () {
|
||||||
Navigator.pushNamed(context, Routers.lockDetailPage);
|
Navigator.pushNamed(context, Routers.lockDetailPage);
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
|
||||||
import '../../../appRouters.dart';
|
import '../../../appRouters.dart';
|
||||||
@ -19,14 +19,22 @@ class _LockAddressPageState extends State<LockAddressPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: "锁地址", haveBack:true, backgroundColor: AppColors.mainColor, actionsList: [
|
appBar: TitleAppBar(
|
||||||
TextButton(
|
barTitle: "锁地址",
|
||||||
child: Text("保存", style: const TextStyle(color: Colors.white),),
|
haveBack: true,
|
||||||
onPressed: (){
|
backgroundColor: AppColors.mainColor,
|
||||||
Navigator.pushNamed(context, Routers.saveLockPage);
|
actionsList: [
|
||||||
},),
|
TextButton(
|
||||||
],),
|
child: Text(
|
||||||
body:Container()
|
"保存",
|
||||||
);
|
style: TextStyle(color: Colors.white, fontSize: 24.sp),
|
||||||
|
),
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.pushNamed(context, Routers.saveLockPage);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: Container());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,8 +30,8 @@ class _GatewayListPageState extends State<GatewayListPage> {
|
|||||||
},
|
},
|
||||||
child: Image.asset(
|
child: Image.asset(
|
||||||
'images/icon_add_white.png',
|
'images/icon_add_white.png',
|
||||||
width: 40.w,
|
width: 36.w,
|
||||||
height: 40.w,
|
height: 36.w,
|
||||||
)),
|
)),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 30.w,
|
||||||
|
|||||||
@ -265,7 +265,7 @@ class _AddAuthorizedAdministratorPageState
|
|||||||
leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr,
|
leftTitel: TranslationLoader.lanKeys!.remoteUnlockingAllowed!.tr,
|
||||||
rightTitle: "",
|
rightTitle: "",
|
||||||
isHaveRightWidget: true,
|
isHaveRightWidget: true,
|
||||||
rightWidget: Container(width: 80.w, height: 50.h, child: _switch()),
|
rightWidget: SizedBox(width: 80.w, height: 50.h, child: _switch()),
|
||||||
action: () {}),
|
action: () {}),
|
||||||
Container(height: 40.h),
|
Container(height: 40.h),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -27,7 +27,11 @@ class _AuthorizedAdministratorListPageState
|
|||||||
backgroundColor: AppColors.mainColor,
|
backgroundColor: AppColors.mainColor,
|
||||||
actionsList: [
|
actionsList: [
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Image.asset('images/icon_add_white.png'),
|
icon: Image.asset(
|
||||||
|
'images/icon_add_white.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// 处理操作按钮的点击事件
|
// 处理操作按钮的点击事件
|
||||||
Navigator.pushNamed(
|
Navigator.pushNamed(
|
||||||
@ -82,7 +86,7 @@ class _AuthorizedAdministratorListPageState
|
|||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/controls_user.png', "张三",
|
return _electronicKeyItem('images/controls_user.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
@ -109,11 +113,11 @@ class _AuthorizedAdministratorListPageState
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 44.w,
|
width: 60.w,
|
||||||
height: 44.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -125,23 +129,21 @@ class _AuthorizedAdministratorListPageState
|
|||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 24.sp, fontWeight: FontWeight.w500),
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 5.h),
|
SizedBox(height: 5.h),
|
||||||
Container(
|
Row(
|
||||||
child: Row(
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
children: [
|
||||||
children: [
|
Text(
|
||||||
Text(
|
"2023.6.21 11.15 永久",
|
||||||
"2023.6.21 11.15 永久",
|
style: TextStyle(
|
||||||
style: TextStyle(
|
fontSize: 18.sp,
|
||||||
fontSize: 20.sp,
|
color: AppColors.placeholderTextColor),
|
||||||
color: AppColors.darkGrayTextColor),
|
),
|
||||||
),
|
],
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
SizedBox(width: 20.h),
|
SizedBox(width: 20.h),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -26,7 +26,11 @@ class _LockGroupListPageState extends State<LockGroupListPage> {
|
|||||||
haveBack: true,
|
haveBack: true,
|
||||||
actionsList: [
|
actionsList: [
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Image.asset('images/icon_add_white.png'),
|
icon: Image.asset(
|
||||||
|
'images/icon_add_white.png',
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
// 处理操作按钮的点击事件-添加锁分组
|
// 处理操作按钮的点击事件-添加锁分组
|
||||||
},
|
},
|
||||||
|
|||||||
@ -104,14 +104,21 @@ class _LockUserManageListListPageState
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildMainUI() {
|
Widget _buildMainUI() {
|
||||||
return ListView.builder(
|
return ListView.separated(
|
||||||
itemCount: 10,
|
itemCount: 5,
|
||||||
itemBuilder: (c, index) {
|
itemBuilder: (c, index) {
|
||||||
return _electronicKeyItem('images/controls_user.png', "张三",
|
return _electronicKeyItem('images/controls_user.png', "张三",
|
||||||
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
"2023.6.21 11.15", "2023.6.21 11.15", () {
|
||||||
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
|
Navigator.pushNamed(context, Routers.ownedKeyListPage);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
separatorBuilder: (BuildContext context, int index) {
|
||||||
|
return const Divider(
|
||||||
|
height: 1,
|
||||||
|
color: AppColors.greyLineColor,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
|
||||||
@ -120,7 +127,6 @@ class _LockUserManageListListPageState
|
|||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 90.h,
|
height: 90.h,
|
||||||
margin: EdgeInsets.only(top: 1.h),
|
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
// decoration: BoxDecoration(
|
// decoration: BoxDecoration(
|
||||||
// color: Colors.white,
|
// color: Colors.white,
|
||||||
@ -133,11 +139,11 @@ class _LockUserManageListListPageState
|
|||||||
),
|
),
|
||||||
Image.asset(
|
Image.asset(
|
||||||
lockTypeIcon,
|
lockTypeIcon,
|
||||||
width: 44.w,
|
width: 60.w,
|
||||||
height: 44.w,
|
height: 60.w,
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 30.w,
|
width: 20.w,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -148,7 +154,8 @@ class _LockUserManageListListPageState
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
lockTypeTitle,
|
lockTypeTitle,
|
||||||
style: TextStyle(fontSize: 24.sp),
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -159,8 +166,8 @@ class _LockUserManageListListPageState
|
|||||||
Text(
|
Text(
|
||||||
"2023.6.21 11.15 永久",
|
"2023.6.21 11.15 永久",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 20.sp,
|
fontSize: 18.sp,
|
||||||
color: AppColors.darkGrayTextColor),
|
color: AppColors.placeholderTextColor),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
121
star_lock/lib/mine/mineSet/lockUserManage/ownedKeyList_page.dart
Normal file
121
star_lock/lib/mine/mineSet/lockUserManage/ownedKeyList_page.dart
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
|
import '../../../../appRouters.dart';
|
||||||
|
import '../../../../app_settings/app_colors.dart';
|
||||||
|
import '../../../../tools/titleAppBar.dart';
|
||||||
|
|
||||||
|
class OwnedKeyListPage extends StatefulWidget {
|
||||||
|
const OwnedKeyListPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<OwnedKeyListPage> createState() => _OwnedKeyListPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _OwnedKeyListPageState extends State<OwnedKeyListPage> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
|
appBar: TitleAppBar(
|
||||||
|
barTitle: "拥有的钥匙",
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor,
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: [
|
||||||
|
_topOwnedKeyText(),
|
||||||
|
Expanded(child: _buildMainUI()),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _topOwnedKeyText() {
|
||||||
|
return Container(
|
||||||
|
color: Colors.white,
|
||||||
|
width: ScreenUtil().screenWidth,
|
||||||
|
// margin: EdgeInsets.only(left: 30.w, top: 30.w, right: 30.w, bottom: 30.w),
|
||||||
|
child: Padding(
|
||||||
|
padding:
|
||||||
|
EdgeInsets.only(left: 30.w, top: 30.w, right: 20.w, bottom: 10.w),
|
||||||
|
child: Text(
|
||||||
|
"拥有的钥匙",
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _buildMainUI() {
|
||||||
|
return ListView.builder(
|
||||||
|
itemCount: 5,
|
||||||
|
itemBuilder: (c, index) {
|
||||||
|
return _electronicKeyItem('images/controls_user.png', "JBL01_5a3de9",
|
||||||
|
"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(
|
||||||
|
onTap: action,
|
||||||
|
child: Container(
|
||||||
|
height: 90.h,
|
||||||
|
margin: const EdgeInsets.only(top: 1),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
|
),
|
||||||
|
Image.asset(
|
||||||
|
lockTypeIcon,
|
||||||
|
width: 60.w,
|
||||||
|
height: 60.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
width: 20.w,
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
lockTypeTitle,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp, color: AppColors.blackColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 5.h),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"2023.6.21 11.15 永久",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 18.sp,
|
||||||
|
color: AppColors.placeholderTextColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(width: 20.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(width: 20.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -17,35 +16,55 @@ class SupportStaffPage extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _SupportStaffPageState extends State<SupportStaffPage> {
|
class _SupportStaffPageState extends State<SupportStaffPage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: const Color(0xFFFFFFFF),
|
backgroundColor: const Color(0xFFFFFFFF),
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.supportStaff!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.supportStaff!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.email!.tr, "786612630@qq.com", true, true, 'images/mine/icon_mine_supportStaff_openEmail.png',() async {
|
supportStaffItem(
|
||||||
String url = 'mailto:smith@example.org?subject=News&body=New%20plugin' ;
|
TranslationLoader.lanKeys!.email!.tr,
|
||||||
|
"786612630@qq.com",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'images/mine/icon_mine_supportStaff_openEmail.png', () async {
|
||||||
|
String url =
|
||||||
|
'mailto:smith@example.org?subject=News&body=New%20plugin';
|
||||||
_pushUrl(url);
|
_pushUrl(url);
|
||||||
}),
|
}),
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.businessCooperation!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_openEmail.png',() async {
|
supportStaffItem(
|
||||||
|
TranslationLoader.lanKeys!.businessCooperation!.tr,
|
||||||
|
"www.starLock.com",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'images/mine/icon_mine_supportStaff_openEmail.png', () async {
|
||||||
const url = 'tel:15080825640';
|
const url = 'tel:15080825640';
|
||||||
_pushUrl(url);
|
_pushUrl(url);
|
||||||
}),
|
}),
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.officialWebsite!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_jump.png',() async {
|
supportStaffItem(
|
||||||
|
TranslationLoader.lanKeys!.officialWebsite!.tr,
|
||||||
|
"www.starLock.com",
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
'images/mine/icon_mine_supportStaff_jump.png', () async {
|
||||||
const url = 'https://blog.csdn.net/shulianghan';
|
const url = 'https://blog.csdn.net/shulianghan';
|
||||||
_pushUrl(url);
|
_pushUrl(url);
|
||||||
}),
|
}),
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.computerWebVersion!.tr, "www.starLock.com", false, true, '',(){
|
supportStaffItem(TranslationLoader.lanKeys!.computerWebVersion!.tr,
|
||||||
|
"www.starLock.com", false, true, '', () {}),
|
||||||
}),
|
supportStaffItem(TranslationLoader.lanKeys!.hotelSystem!.tr,
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.hotelSystem!.tr, "www.starLock.com", false, true, '',(){
|
"www.starLock.com", false, true, '', () {}),
|
||||||
|
supportStaffItem(
|
||||||
}),
|
TranslationLoader.lanKeys!.manualWebVersion!.tr,
|
||||||
supportStaffItem(TranslationLoader.lanKeys!.manualWebVersion!.tr, "www.starLock.com", true, true, 'images/mine/icon_mine_supportStaff_jump.png',(){
|
"www.starLock.com",
|
||||||
|
true,
|
||||||
}),
|
true,
|
||||||
|
'images/mine/icon_mine_supportStaff_jump.png',
|
||||||
|
() {}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -59,7 +78,14 @@ class _SupportStaffPageState extends State<SupportStaffPage> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget supportStaffItem (String? leftTitel, String? rightTitle, bool? isHaveRightImg, bool? isHaveLine, String? rightImg, Function()? action,){
|
Widget supportStaffItem(
|
||||||
|
String? leftTitel,
|
||||||
|
String? rightTitle,
|
||||||
|
bool? isHaveRightImg,
|
||||||
|
bool? isHaveLine,
|
||||||
|
String? rightImg,
|
||||||
|
Function()? action,
|
||||||
|
) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Column(
|
child: Column(
|
||||||
@ -68,27 +94,42 @@ class _SupportStaffPageState extends State<SupportStaffPage> {
|
|||||||
Container(
|
Container(
|
||||||
height: 80.h,
|
height: 80.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: EdgeInsets.only(left:20.w, right: 10.w),// , top: 20.w, bottom: 20.w
|
padding: EdgeInsets.only(
|
||||||
|
left: 20.w, right: 10.w), // , top: 20.w, bottom: 20.w
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Expanded(child: Text(leftTitel!, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))),
|
Expanded(
|
||||||
SizedBox(width:20.w),
|
child: Text(leftTitel!, style: TextStyle(fontSize: 24.sp))),
|
||||||
|
SizedBox(width: 20.w),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [Text(rightTitle!, textAlign: TextAlign.end, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))
|
children: [
|
||||||
|
Text(rightTitle!,
|
||||||
|
textAlign: TextAlign.end,
|
||||||
|
style: TextStyle(fontSize: 22.sp))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width:5.w),
|
SizedBox(width: 5.w),
|
||||||
isHaveRightImg!?Image.asset(rightImg!, width: 50.w, height: 50.w,):SizedBox(width:10.w),
|
isHaveRightImg!
|
||||||
|
? Image.asset(
|
||||||
|
rightImg!,
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
)
|
||||||
|
: SizedBox(width: 10.w),
|
||||||
// SizedBox(width:10.w),
|
// SizedBox(width:10.w),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
isHaveLine!?Container(height: 0.5.h, color: Colors.grey,):Container()
|
isHaveLine!
|
||||||
|
? Container(
|
||||||
|
height: 0.5.h,
|
||||||
|
color: Colors.grey,
|
||||||
|
)
|
||||||
|
: Container()
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -12,11 +11,17 @@ class ValueAddedServicesBuyPage extends StatefulWidget {
|
|||||||
const ValueAddedServicesBuyPage({Key? key}) : super(key: key);
|
const ValueAddedServicesBuyPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesBuyPage> createState() => _ValueAddedServicesBuyPageState();
|
State<ValueAddedServicesBuyPage> createState() =>
|
||||||
|
_ValueAddedServicesBuyPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
||||||
final data = ["1", "2", "3", "4", ];
|
final data = [
|
||||||
|
"1",
|
||||||
|
"2",
|
||||||
|
"3",
|
||||||
|
"4",
|
||||||
|
];
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -24,21 +29,27 @@ class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
|||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle: _getNavTitle(type), haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: _getNavTitle(type),
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
// height: 400.h,
|
// height: 400.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
padding: EdgeInsets.only(
|
||||||
|
left: 25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.chooseAPackage!.tr, style: TextStyle(fontSize: 32.sp),),
|
Text(
|
||||||
|
TranslationLoader.lanKeys!.chooseAPackage!.tr,
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
)
|
)),
|
||||||
),
|
|
||||||
Expanded(
|
Expanded(
|
||||||
child: GridView.count(
|
child: GridView.count(
|
||||||
padding: EdgeInsets.all(10.w),
|
padding: EdgeInsets.all(10.w),
|
||||||
@ -51,40 +62,71 @@ class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
|||||||
),
|
),
|
||||||
Container(
|
Container(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
padding: EdgeInsets.only(
|
||||||
|
left: 25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(TranslationLoader.lanKeys!.modeOfPayment!.tr, style: TextStyle(fontSize: 32.sp),),
|
Text(
|
||||||
SizedBox(height: 20.h,),
|
TranslationLoader.lanKeys!.modeOfPayment!.tr,
|
||||||
|
style: TextStyle(fontSize: 32.sp),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Image.asset('images/mine/icon_mine_valueAddedServices_zfb.png', width: 40.w, height: 40.w,),
|
Image.asset(
|
||||||
SizedBox(width:20.w),
|
'images/mine/icon_mine_valueAddedServices_zfb.png',
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.alipay!.tr, style: TextStyle(fontSize: 28.sp, fontWeight: FontWeight.w500))),
|
width: 40.w,
|
||||||
SizedBox(width:5.w),
|
height: 40.w,
|
||||||
Image.asset('images/icon_round_selet.png', width: 40.w, height: 40.w,)
|
),
|
||||||
|
SizedBox(width: 20.w),
|
||||||
|
Expanded(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.alipay!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 28.sp, fontWeight: FontWeight.w500))),
|
||||||
|
SizedBox(width: 5.w),
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_round_selet.png',
|
||||||
|
width: 40.w,
|
||||||
|
height: 40.w,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h,),
|
SizedBox(
|
||||||
|
height: 20.h,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Container(height: 10.h, color: const Color(0xFFF5F5F5),),
|
Container(
|
||||||
|
height: 10.h,
|
||||||
|
color: const Color(0xFFF5F5F5),
|
||||||
|
),
|
||||||
Container(
|
Container(
|
||||||
height: 100.h,
|
height: 100.h,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width:20.w),
|
SizedBox(width: 20.w),
|
||||||
Expanded(child: Text("¥50", style: TextStyle(fontSize: 36.sp, color: AppColors.mainColor, fontWeight: FontWeight.w500))),
|
Expanded(
|
||||||
SizedBox(width:5.w),
|
child: Text("¥50",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 36.sp,
|
||||||
|
color: AppColors.mainColor,
|
||||||
|
fontWeight: FontWeight.w500))),
|
||||||
|
SizedBox(width: 5.w),
|
||||||
Container(
|
Container(
|
||||||
width: 180.w,
|
width: 180.w,
|
||||||
height: 100.h,
|
height: 100.h,
|
||||||
color: AppColors.mainColor,
|
color: AppColors.mainColor,
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.goToPay!.tr, style: TextStyle(fontSize: 32.sp, color: Colors.white, fontWeight: FontWeight.w500)))
|
child: Center(
|
||||||
)
|
child: Text(TranslationLoader.lanKeys!.goToPay!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 32.sp,
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.w500))))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@ -96,26 +138,31 @@ class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
|||||||
Container _buildItem(String title) {
|
Container _buildItem(String title) {
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.all(10.w),
|
margin: EdgeInsets.all(10.w),
|
||||||
padding: EdgeInsets.only(left:30.w, top: 20.h, bottom: 20.h),
|
padding: EdgeInsets.only(left: 30.w, top: 20.h, bottom: 20.h),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: title == "1" ? const Color(0xFFEDF1FD):Colors.white,
|
color: title == "1" ? const Color(0xFFEDF1FD) : Colors.white,
|
||||||
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
||||||
border: Border.all(width: 0.5.w, color: Colors.black)
|
border: Border.all(width: 0.5.w, color: Colors.black)),
|
||||||
),
|
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text("500条", style: TextStyle(fontSize: 36.sp),),
|
Text(
|
||||||
|
"500条",
|
||||||
|
style: TextStyle(fontSize: 36.sp),
|
||||||
|
),
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 10.h),
|
||||||
Text("¥50 (¥0.08/条)", style: TextStyle(fontSize: 32.sp),),
|
Text(
|
||||||
|
"¥50 (¥0.08/条)",
|
||||||
|
style: TextStyle(fontSize: 32.sp),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
String _getNavTitle(int type){
|
String _getNavTitle(int type) {
|
||||||
String topTitle = "";
|
String topTitle = "";
|
||||||
switch(type){
|
switch (type) {
|
||||||
case 1:
|
case 1:
|
||||||
topTitle = TranslationLoader.lanKeys!.buySMS!.tr;
|
topTitle = TranslationLoader.lanKeys!.buySMS!.tr;
|
||||||
break;
|
break;
|
||||||
@ -123,7 +170,8 @@ class _ValueAddedServicesBuyPageState extends State<ValueAddedServicesBuyPage> {
|
|||||||
topTitle = TranslationLoader.lanKeys!.buyMail!.tr;
|
topTitle = TranslationLoader.lanKeys!.buyMail!.tr;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
topTitle = TranslationLoader.lanKeys!.buyRealNameAuthenticationTimes!.tr;
|
topTitle =
|
||||||
|
TranslationLoader.lanKeys!.buyRealNameAuthenticationTimes!.tr;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
topTitle = TranslationLoader.lanKeys!.enablingAdvancedFeatures!.tr;
|
topTitle = TranslationLoader.lanKeys!.enablingAdvancedFeatures!.tr;
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
|
|
||||||
@ -7,15 +6,20 @@ import '../../../../tools/CustomUnderlineTabIndicator.dart';
|
|||||||
import '../valueAddedServicesBuyAndUseRecord_page.dart';
|
import '../valueAddedServicesBuyAndUseRecord_page.dart';
|
||||||
|
|
||||||
class ValueAddedServicesBuyAndUseRecordManageTabbar extends StatefulWidget {
|
class ValueAddedServicesBuyAndUseRecordManageTabbar extends StatefulWidget {
|
||||||
var initialIndex=1;
|
var initialIndex = 1;
|
||||||
|
|
||||||
ValueAddedServicesBuyAndUseRecordManageTabbar({Key? key, required this.initialIndex}) : super(key: key);
|
ValueAddedServicesBuyAndUseRecordManageTabbar(
|
||||||
|
{Key? key, required this.initialIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesBuyAndUseRecordManageTabbar> createState() => _ValueAddedServicesBuyAndUseRecordManageTabbarState();
|
State<ValueAddedServicesBuyAndUseRecordManageTabbar> createState() =>
|
||||||
|
_ValueAddedServicesBuyAndUseRecordManageTabbarState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesBuyAndUseRecordManageTabbarState extends State<ValueAddedServicesBuyAndUseRecordManageTabbar> with SingleTickerProviderStateMixin {
|
class _ValueAddedServicesBuyAndUseRecordManageTabbarState
|
||||||
|
extends State<ValueAddedServicesBuyAndUseRecordManageTabbar>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
late TabController _tabController;
|
late TabController _tabController;
|
||||||
|
|
||||||
final List<ItemView> _itemTabs = <ItemView>[
|
final List<ItemView> _itemTabs = <ItemView>[
|
||||||
@ -29,33 +33,44 @@ class _ValueAddedServicesBuyAndUseRecordManageTabbarState extends State<ValueAdd
|
|||||||
void initState() {
|
void initState() {
|
||||||
// TODO: implement initState
|
// TODO: implement initState
|
||||||
super.initState();
|
super.initState();
|
||||||
_tabController = TabController(vsync: this, length: _itemTabs.length,initialIndex: widget.initialIndex);
|
_tabController = TabController(
|
||||||
|
vsync: this,
|
||||||
|
length: _itemTabs.length,
|
||||||
|
initialIndex: widget.initialIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
_tabBar(),
|
_tabBar(),
|
||||||
_pageWidget(),
|
_pageWidget(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TabBar _tabBar(){
|
TabBar _tabBar() {
|
||||||
return TabBar(
|
return TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
tabs: _itemTabs.map((ItemView item) => _tab(item)).toList(),
|
||||||
isScrollable: true,
|
isScrollable: true,
|
||||||
indicatorColor: Colors.red,
|
indicatorColor: Colors.red,
|
||||||
unselectedLabelColor: Colors.black,
|
unselectedLabelColor: Colors.black,
|
||||||
unselectedLabelStyle: TextStyle(color:AppColors.mainColor,fontSize: 28.sp,),
|
unselectedLabelStyle: TextStyle(
|
||||||
automaticIndicatorColorAdjustment:true,
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
),
|
||||||
|
automaticIndicatorColorAdjustment: true,
|
||||||
labelColor: AppColors.mainColor,
|
labelColor: AppColors.mainColor,
|
||||||
labelStyle: TextStyle(color: AppColors.mainColor,fontSize: 32.sp,fontWeight: FontWeight.w600),
|
labelStyle: TextStyle(
|
||||||
indicator: CustomUnderlineTabIndicator(borderSide: BorderSide(color: AppColors.mainColor,width: 10.w),strokeCap: StrokeCap.round,width: 0.w),
|
color: AppColors.mainColor,
|
||||||
|
fontSize: 24.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
indicator: CustomUnderlineTabIndicator(
|
||||||
|
borderSide: BorderSide(color: AppColors.mainColor, width: 4.w),
|
||||||
|
strokeCap: StrokeCap.round,
|
||||||
|
width: 30.w),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,19 +78,26 @@ class _ValueAddedServicesBuyAndUseRecordManageTabbarState extends State<ValueAdd
|
|||||||
return Tab(
|
return Tab(
|
||||||
// text: item.title,
|
// text: item.title,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 1.sw/4,
|
width: 1.sw / 4,
|
||||||
margin: EdgeInsets.all(10.w),
|
margin: EdgeInsets.all(10.w),
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
child: Text(item.title, textAlign: TextAlign.center,),
|
child: Text(
|
||||||
|
item.title,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _pageWidget(){
|
Widget _pageWidget() {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
children: _itemTabs.map((ItemView item) => ValueAddedServicesBuyAndUseRecordPage(type: item.type,)).toList(),
|
children: _itemTabs
|
||||||
|
.map((ItemView item) => ValueAddedServicesBuyAndUseRecordPage(
|
||||||
|
type: item.type,
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,16 +12,23 @@ class ValueAddedServicesHighFunctionPage extends StatefulWidget {
|
|||||||
const ValueAddedServicesHighFunctionPage({Key? key}) : super(key: key);
|
const ValueAddedServicesHighFunctionPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesHighFunctionPage> createState() => _ValueAddedServicesHighFunctionPageState();
|
State<ValueAddedServicesHighFunctionPage> createState() =>
|
||||||
|
_ValueAddedServicesHighFunctionPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesHighFunctionPage> {
|
class _ValueAddedServicesHighFunctionPageState
|
||||||
|
extends State<ValueAddedServicesHighFunctionPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
appBar: TitleAppBar(barTitle:TranslationLoader.lanKeys!.advancedFunction!.tr, haveBack:true, iconColor: Colors.black, titleColor: Colors.black, backgroundColor: Colors.white),
|
appBar: TitleAppBar(
|
||||||
body:Column(
|
barTitle: TranslationLoader.lanKeys!.advancedFunction!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
iconColor: Colors.black,
|
||||||
|
titleColor: Colors.black,
|
||||||
|
backgroundColor: Colors.white),
|
||||||
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: ListView(
|
child: ListView(
|
||||||
@ -36,11 +42,10 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
),
|
),
|
||||||
_bottomBtn(),
|
_bottomBtn(),
|
||||||
],
|
],
|
||||||
)
|
));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _topShowState(){
|
Widget _topShowState() {
|
||||||
return Container(
|
return Container(
|
||||||
height: 150.h,
|
height: 150.h,
|
||||||
margin: EdgeInsets.only(left: 30.w, top: 20.h, right: 30.w),
|
margin: EdgeInsets.only(left: 30.w, top: 20.h, right: 30.w),
|
||||||
@ -63,10 +68,18 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text("${TranslationLoader.lanKeys!.currentState!.tr}:${TranslationLoader.lanKeys!.haveNotOpened!.tr}", style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600),),
|
Text(
|
||||||
|
"${TranslationLoader.lanKeys!.currentState!.tr}:${TranslationLoader.lanKeys!.haveNotOpened!.tr}",
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
SizedBox(height: 5.h),
|
SizedBox(height: 5.h),
|
||||||
Text("${TranslationLoader.lanKeys!.periodValidity!.tr}:2023-07-29", style: TextStyle(fontSize: 30.sp, fontWeight: FontWeight.w600),),
|
Text(
|
||||||
],//
|
"${TranslationLoader.lanKeys!.periodValidity!.tr}:2023-07-29",
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 20.sp, fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
], //
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -74,8 +87,8 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
bottom: 0.h,
|
bottom: 0.h,
|
||||||
right: 0.w,
|
right: 0.w,
|
||||||
child: Container(
|
child: Container(
|
||||||
width: 120.w,
|
width: 90.w,
|
||||||
height: 60.h,
|
height: 50.h,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: const Color(0xFFBDCDDF),
|
color: const Color(0xFFBDCDDF),
|
||||||
borderRadius: BorderRadius.only(
|
borderRadius: BorderRadius.only(
|
||||||
@ -83,52 +96,66 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
bottomLeft: Radius.circular(30.h),
|
bottomLeft: Radius.circular(30.h),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr)),
|
child: Center(
|
||||||
)
|
child: Text(
|
||||||
),
|
TranslationLoader.lanKeys!.record!.tr,
|
||||||
|
style: TextStyle(fontSize: 22.sp),
|
||||||
|
)),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _benefitsContent(){
|
Widget _benefitsContent() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
margin: EdgeInsets.only(left: 30.w, top: 50.h, right: 30.w),
|
margin: EdgeInsets.only(left: 130.w, top: 50.h, right: 130.w),
|
||||||
padding: EdgeInsets.only(left: 30.w),
|
padding: EdgeInsets.only(left: 30.w),
|
||||||
child: Row(
|
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
Image.asset('images/mine/icon_mine_highFunctionContent_left.png',
|
||||||
children: [
|
width: 30.w, height: 30.w),
|
||||||
Image.asset('images/mine/icon_mine_highFunctionContent_left.png', width: 40.w, height: 40.w),
|
Expanded(
|
||||||
SizedBox(width: 10.w,),
|
child: Text(
|
||||||
Expanded(
|
TranslationLoader
|
||||||
child: Text(TranslationLoader.lanKeys!.advancedFeaturesAndBenefitsContent!.tr, textAlign: TextAlign.center,style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600)),
|
.lanKeys!.advancedFeaturesAndBenefitsContent!.tr,
|
||||||
),
|
textAlign: TextAlign.center,
|
||||||
SizedBox(width: 10.w,),
|
style:
|
||||||
Image.asset('images/mine/icon_mine_highFunctionContent_right.png', width: 40.w, height: 40.w)
|
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600)),
|
||||||
]
|
),
|
||||||
),
|
Image.asset('images/mine/icon_mine_highFunctionContent_right.png',
|
||||||
|
width: 30.w, height: 30.w)
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
),
|
),
|
||||||
SizedBox(height: 10.h,),
|
|
||||||
Container(
|
Container(
|
||||||
height: 1.sw,
|
height: 1.sw,
|
||||||
child: GridView.count(
|
child: GridView.count(
|
||||||
padding: EdgeInsets.all(10.h),
|
padding: EdgeInsets.all(10.h),
|
||||||
crossAxisCount: 3,
|
crossAxisCount: 3,
|
||||||
mainAxisSpacing: 10.h,
|
mainAxisSpacing: 10.h,
|
||||||
crossAxisSpacing: 10.h,
|
crossAxisSpacing: 8.h,
|
||||||
// childAspectRatio: 1 / 0.5,
|
// childAspectRatio: 1 / 0.5,
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
children: [
|
children: [
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_dxmb.png", TranslationLoader.lanKeys!.smsTemplate!.tr),
|
_buildItem("images/mine/icon_mine_highFunctionContent_dxmb.png",
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_yjmb.png", TranslationLoader.lanKeys!.emailTemplate!.tr),
|
TranslationLoader.lanKeys!.smsTemplate!.tr),
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_sqgly.png", TranslationLoader.lanKeys!.authorizedAdmin!.tr),
|
_buildItem("images/mine/icon_mine_highFunctionContent_yjmb.png",
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_sfz.png", TranslationLoader.lanKeys!.lockGroup!.tr),
|
TranslationLoader.lanKeys!.emailTemplate!.tr),
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_bjft.png", TranslationLoader.lanKeys!.sendGroupKey!.tr),
|
_buildItem("images/mine/icon_mine_highFunctionContent_sqgly.png",
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_bjft.png", TranslationLoader.lanKeys!.markedHouseState!.tr),
|
TranslationLoader.lanKeys!.authorizedAdmin!.tr),
|
||||||
_buildItem("images/mine/icon_mine_highFunctionContent_fkgj.png", TranslationLoader.lanKeys!.cardIssuingtool!.tr),
|
_buildItem("images/mine/icon_mine_highFunctionContent_sfz.png",
|
||||||
|
TranslationLoader.lanKeys!.lockGroup!.tr),
|
||||||
|
_buildItem("images/mine/icon_mine_highFunctionContent_bjft.png",
|
||||||
|
TranslationLoader.lanKeys!.sendGroupKey!.tr),
|
||||||
|
_buildItem("images/mine/icon_mine_highFunctionContent_bjft.png",
|
||||||
|
TranslationLoader.lanKeys!.markedHouseState!.tr),
|
||||||
|
_buildItem("images/mine/icon_mine_highFunctionContent_fkgj.png",
|
||||||
|
TranslationLoader.lanKeys!.cardIssuingtool!.tr),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -139,7 +166,7 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
Container _buildItem(String img, String title) {
|
Container _buildItem(String img, String title) {
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.all(10.h),
|
margin: EdgeInsets.all(10.h),
|
||||||
padding: EdgeInsets.only(top: 30.h),
|
padding: EdgeInsets.only(top: 20.h),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: const Color(0xFFF7F7FA),
|
color: const Color(0xFFF7F7FA),
|
||||||
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
borderRadius: BorderRadius.all(Radius.circular(20.h)),
|
||||||
@ -148,15 +175,21 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
child: Column(
|
child: Column(
|
||||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Image.asset(
|
||||||
width: 90.w,
|
img,
|
||||||
height: 90.w,
|
width: 70.w,
|
||||||
child: Image.asset(img)
|
height: 70.w,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 10.h,
|
||||||
),
|
),
|
||||||
SizedBox(height: 10.h,),
|
|
||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
Text(title, style: TextStyle(fontSize: 32.sp), textAlign: TextAlign.center,),
|
Text(
|
||||||
|
title,
|
||||||
|
style: TextStyle(fontSize: 22.sp),
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -164,23 +197,32 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buyNotes(){
|
Widget _buyNotes() {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
// color: Colors.red,
|
// color: Colors.red,
|
||||||
margin: EdgeInsets.only(left: 30.w, top: 50.h, right: 30.w),
|
margin: EdgeInsets.only(left: 30.w, top: 50.h, right: 30.w),
|
||||||
padding: EdgeInsets.only(left: 30.w),
|
padding: EdgeInsets.only(left: 30.w),
|
||||||
child: Row(
|
child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
Image.asset('images/mine/icon_mine_highFunctionContent_left.png',
|
||||||
children: [
|
width: 40.w, height: 40.w),
|
||||||
Image.asset('images/mine/icon_mine_highFunctionContent_left.png', width: 40.w, height: 40.w),
|
SizedBox(
|
||||||
SizedBox(width: 10.w,),
|
width: 10.w,
|
||||||
Expanded(child: Text(TranslationLoader.lanKeys!.titleForBuyingAdvancedFeatures!.tr, textAlign: TextAlign.center, style: TextStyle(fontSize: 36.sp, fontWeight: FontWeight.w600))),
|
),
|
||||||
SizedBox(width: 10.w,),
|
Expanded(
|
||||||
Image.asset('images/mine/icon_mine_highFunctionContent_right.png', width: 40.w, height: 40.w)
|
child: Text(
|
||||||
]
|
TranslationLoader
|
||||||
),
|
.lanKeys!.titleForBuyingAdvancedFeatures!.tr,
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 24.sp, fontWeight: FontWeight.w600))),
|
||||||
|
SizedBox(
|
||||||
|
width: 10.w,
|
||||||
|
),
|
||||||
|
Image.asset('images/mine/icon_mine_highFunctionContent_right.png',
|
||||||
|
width: 40.w, height: 40.w)
|
||||||
|
]),
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h),
|
SizedBox(height: 20.h),
|
||||||
Container(
|
Container(
|
||||||
@ -190,15 +232,17 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
borderRadius: BorderRadius.circular(10.h),
|
borderRadius: BorderRadius.circular(10.h),
|
||||||
),
|
),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: EdgeInsets.only(left: 30.w, top: 30.h, right: 30.w, bottom: 30.h),
|
padding: EdgeInsets.only(
|
||||||
child: Text(TranslationLoader.lanKeys!.tipsForBuyingAdvancedFeatures!.tr)),
|
left: 30.w, top: 30.h, right: 30.w, bottom: 30.h),
|
||||||
|
child: Text(TranslationLoader
|
||||||
|
.lanKeys!.tipsForBuyingAdvancedFeatures!.tr)),
|
||||||
),
|
),
|
||||||
SizedBox(height: 20.h),
|
SizedBox(height: 20.h),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _bottomBtn(){
|
Widget _bottomBtn() {
|
||||||
return Container(
|
return Container(
|
||||||
margin: EdgeInsets.only(top: 30.h, bottom: 30.h),
|
margin: EdgeInsets.only(top: 30.h, bottom: 30.h),
|
||||||
child: Row(
|
child: Row(
|
||||||
@ -206,23 +250,28 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
Visibility(
|
Visibility(
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 100.h,
|
||||||
width: (1.sw-20.w*3)/2,
|
width: (1.sw - 20.w * 3) / 2,
|
||||||
margin: EdgeInsets.only(left: 20.w),
|
margin: EdgeInsets.only(left: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
border: Border.all(width: 3.w, color: const Color(0xFF000635)),
|
border: Border.all(width: 3.w, color: const Color(0xFF000635)),
|
||||||
borderRadius: BorderRadius.circular(50.h),
|
borderRadius: BorderRadius.circular(50.h),
|
||||||
),
|
),
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.freeTrial!.tr, style: TextStyle(fontSize: 34.sp),)),
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.freeTrial!.tr,
|
||||||
|
style: TextStyle(fontSize: 34.sp),
|
||||||
|
)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: (){
|
onTap: () {
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: 4);
|
Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage,
|
||||||
|
arguments: 4);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 100.h,
|
height: 100.h,
|
||||||
width: (1.sw-20.w*3)/2,
|
width: (1.sw - 20.w * 3) / 2,
|
||||||
// width: 1.sw-20.w*2,
|
// width: 1.sw-20.w*2,
|
||||||
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
margin: EdgeInsets.only(left: 20.w, right: 20.w),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
@ -230,7 +279,12 @@ class _ValueAddedServicesHighFunctionPageState extends State<ValueAddedServicesH
|
|||||||
border: Border.all(width: 1, color: AppColors.mainColor),
|
border: Border.all(width: 1, color: AppColors.mainColor),
|
||||||
borderRadius: BorderRadius.circular(50.h),
|
borderRadius: BorderRadius.circular(50.h),
|
||||||
),
|
),
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.openNow!.tr, style: TextStyle(fontSize: 34.sp, color: const Color(0xFFF9CEAC)),)),
|
child: Center(
|
||||||
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.openNow!.tr,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 34.sp, color: const Color(0xFFF9CEAC)),
|
||||||
|
)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -12,82 +11,135 @@ class ValueAddedServicesListPage extends StatefulWidget {
|
|||||||
const ValueAddedServicesListPage({Key? key}) : super(key: key);
|
const ValueAddedServicesListPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesListPage> createState() => _ValueAddedServicesPageListState();
|
State<ValueAddedServicesListPage> createState() =>
|
||||||
|
_ValueAddedServicesPageListState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesPageListState extends State<ValueAddedServicesListPage> {
|
class _ValueAddedServicesPageListState
|
||||||
|
extends State<ValueAddedServicesListPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.valueAddedServices!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.valueAddedServices!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: ListView(
|
body: ListView(
|
||||||
children: [
|
children: [
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_note.png'), TranslationLoader.lanKeys!.note!.tr, (){
|
_valueAddedServicesItem(
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesNoteAndEmailDetailPage, arguments: 1);
|
Image.asset('images/mine/icon_mine_valueAddedServices_note.png'),
|
||||||
}),
|
TranslationLoader.lanKeys!.note!.tr, () {
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_email.png'), TranslationLoader.lanKeys!.mail!.tr, (){
|
Navigator.pushNamed(
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesNoteAndEmailDetailPage, arguments: 2);
|
context, Routers.valueAddedServicesNoteAndEmailDetailPage,
|
||||||
}),
|
arguments: 1);
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_realName.png'), TranslationLoader.lanKeys!.realNameAuthentication!.tr, (){
|
}),
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesRealNamePage);
|
_valueAddedServicesItem(
|
||||||
}),
|
Image.asset('images/mine/icon_mine_valueAddedServices_email.png'),
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'), TranslationLoader.lanKeys!.advancedFunction!.tr, (){
|
TranslationLoader.lanKeys!.mail!.tr, () {
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesHighFunctionPage);
|
Navigator.pushNamed(
|
||||||
}),
|
context, Routers.valueAddedServicesNoteAndEmailDetailPage,
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_push.png'), TranslationLoader.lanKeys!.pushMessage!.tr, (){
|
arguments: 2);
|
||||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
}),
|
||||||
}),
|
_valueAddedServicesItem(
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_checkIn.png'), TranslationLoader.lanKeys!.checkingIn!.tr, (){
|
Image.asset(
|
||||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
'images/mine/icon_mine_valueAddedServices_realName.png'),
|
||||||
}),
|
TranslationLoader.lanKeys!.realNameAuthentication!.tr, () {
|
||||||
_valueAddedServicesItem(Image.asset('images/mine/icon_mine_valueAddedServices_storage.png'), TranslationLoader.lanKeys!.recordsRetention!.tr, (){
|
Navigator.pushNamed(
|
||||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
context, Routers.valueAddedServicesRealNamePage);
|
||||||
}),
|
}),
|
||||||
_valueAddedServicesItem(Text("A", style: TextStyle(color: Colors.white, fontSize: 38.sp, fontWeight: FontWeight.w600),), "Amazon Alexa", (){
|
_valueAddedServicesItem(
|
||||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
Image.asset('images/mine/icon_mine_valueAddedServices_vip.png'),
|
||||||
}),
|
TranslationLoader.lanKeys!.advancedFunction!.tr, () {
|
||||||
_valueAddedServicesItem(Text("G", style: TextStyle(color: Colors.white, fontSize: 38.sp, fontWeight: FontWeight.w600),), "Google Home", (){
|
Navigator.pushNamed(
|
||||||
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
context, Routers.valueAddedServicesHighFunctionPage);
|
||||||
}),
|
}),
|
||||||
],
|
_valueAddedServicesItem(
|
||||||
|
Image.asset('images/mine/icon_mine_valueAddedServices_push.png'),
|
||||||
|
TranslationLoader.lanKeys!.pushMessage!.tr, () {
|
||||||
|
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||||
|
}),
|
||||||
|
_valueAddedServicesItem(
|
||||||
|
Image.asset(
|
||||||
|
'images/mine/icon_mine_valueAddedServices_checkIn.png'),
|
||||||
|
TranslationLoader.lanKeys!.checkingIn!.tr, () {
|
||||||
|
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||||
|
}),
|
||||||
|
_valueAddedServicesItem(
|
||||||
|
Image.asset(
|
||||||
|
'images/mine/icon_mine_valueAddedServices_storage.png'),
|
||||||
|
TranslationLoader.lanKeys!.recordsRetention!.tr, () {
|
||||||
|
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||||
|
}),
|
||||||
|
_valueAddedServicesItem(
|
||||||
|
Text(
|
||||||
|
"A",
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 38.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
"Amazon Alexa", () {
|
||||||
|
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||||
|
}),
|
||||||
|
_valueAddedServicesItem(
|
||||||
|
Text(
|
||||||
|
"G",
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontSize: 38.sp,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
"Google Home", () {
|
||||||
|
// Navigator.pushNamed(context, Routers.gatewayDetailPage);
|
||||||
|
}),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _valueAddedServicesItem(Widget widget, String gateWayName, Function() action){
|
Widget _valueAddedServicesItem(
|
||||||
|
Widget widget, String gateWayName, Function() action) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: action,
|
onTap: action,
|
||||||
child: Container(
|
child: Container(
|
||||||
// height: 100.h,
|
// height: 100.h,
|
||||||
margin: EdgeInsets.only(top: 20.h, right: 20.w, left: 20.w),
|
margin: EdgeInsets.only(top: 20.h, right: 20.w, left: 20.w),
|
||||||
padding: EdgeInsets.only(left: 20.w, right: 20.w, top: 20.h, bottom: 20.h),
|
padding:
|
||||||
decoration: BoxDecoration(
|
EdgeInsets.only(left: 20.w, right: 20.w, top: 20.h, bottom: 20.h),
|
||||||
|
decoration: BoxDecoration(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
borderRadius: BorderRadius.circular(10.w),
|
borderRadius: BorderRadius.circular(10.w),
|
||||||
),
|
),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: 70.w,
|
width: 60.w,
|
||||||
height: 70.w,
|
height: 60.w,
|
||||||
padding: EdgeInsets.all(12.h),
|
padding: EdgeInsets.all(12.h),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: AppColors.mainColor,
|
color: AppColors.mainColor,
|
||||||
borderRadius: BorderRadius.circular(40.w)
|
borderRadius: BorderRadius.circular(40.w)),
|
||||||
),
|
|
||||||
child: Center(child: widget),
|
child: Center(child: widget),
|
||||||
),
|
),
|
||||||
SizedBox(width: 20.w,),
|
SizedBox(
|
||||||
Expanded(
|
width: 20.w,
|
||||||
child: Text(gateWayName, style: TextStyle(fontSize: 32.sp, fontWeight: FontWeight.w600), ),
|
|
||||||
),
|
),
|
||||||
SizedBox(width:20.h),
|
Expanded(
|
||||||
Image.asset('images/icon_right.png', width: 50.w, height: 50.w,)
|
child: Text(
|
||||||
|
gateWayName,
|
||||||
|
style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(width: 20.h),
|
||||||
|
Image.asset(
|
||||||
|
'images/icon_right_grey.png',
|
||||||
|
width: 12.w,
|
||||||
|
height: 21.w,
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,33 +12,45 @@ class ValueAddedServicesNoteAndEmailDetailPage extends StatefulWidget {
|
|||||||
const ValueAddedServicesNoteAndEmailDetailPage({Key? key}) : super(key: key);
|
const ValueAddedServicesNoteAndEmailDetailPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesNoteAndEmailDetailPage> createState() => _ValueAddedServicesNoteAndEmailDetailPageState();
|
State<ValueAddedServicesNoteAndEmailDetailPage> createState() =>
|
||||||
|
_ValueAddedServicesNoteAndEmailDetailPageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesNoteAndEmailDetailPageState extends State<ValueAddedServicesNoteAndEmailDetailPage> {
|
class _ValueAddedServicesNoteAndEmailDetailPageState
|
||||||
|
extends State<ValueAddedServicesNoteAndEmailDetailPage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var type = ModalRoute.of(context)?.settings.arguments as int;
|
var type = ModalRoute.of(context)?.settings.arguments as int;
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: type == 1?TranslationLoader.lanKeys!.note!.tr:TranslationLoader.lanKeys!.mail!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
body: Column(
|
barTitle: type == 1
|
||||||
children: [
|
? TranslationLoader.lanKeys!.note!.tr
|
||||||
Container(
|
: TranslationLoader.lanKeys!.mail!.tr,
|
||||||
width: 1.sw,
|
haveBack: true,
|
||||||
// color: Colors.grey.shade300,
|
backgroundColor: AppColors.mainColor),
|
||||||
padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
body: Column(
|
||||||
child: Text(type == 1?TranslationLoader.lanKeys!.smsBuyTip!.tr:TranslationLoader.lanKeys!.emailBuyTip!.tr)
|
children: [
|
||||||
),
|
Container(
|
||||||
middleWidget(type),
|
width: 1.sw,
|
||||||
],
|
// color: Colors.grey.shade300,
|
||||||
),
|
padding: EdgeInsets.only(
|
||||||
|
left: 25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
||||||
|
child: Text(
|
||||||
|
type == 1
|
||||||
|
? TranslationLoader.lanKeys!.smsBuyTip!.tr
|
||||||
|
: TranslationLoader.lanKeys!.emailBuyTip!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.darkGrayTextColor, fontSize: 18.sp),
|
||||||
|
)),
|
||||||
|
middleWidget(type),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget middleWidget(int type){
|
Widget middleWidget(int type) {
|
||||||
return Container(
|
return Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
// height: 100,
|
// height: 100,
|
||||||
@ -47,82 +58,103 @@ class _ValueAddedServicesNoteAndEmailDetailPageState extends State<ValueAddedSer
|
|||||||
margin: EdgeInsets.all(10.h),
|
margin: EdgeInsets.all(10.h),
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage("images/mine/icon_mine_valueAddedServices_noteTop.png"),
|
image: AssetImage(
|
||||||
fit: BoxFit.cover
|
"images/mine/icon_mine_valueAddedServices_noteTop.png"),
|
||||||
)
|
fit: BoxFit.cover)),
|
||||||
),
|
child: Column(children: [
|
||||||
child: Column(
|
// SizedBox(height:10),
|
||||||
children: [
|
Container(
|
||||||
// SizedBox(height:10),
|
margin:
|
||||||
Container(
|
const EdgeInsets.only(top: 15, bottom: 15, left: 30, right: 30),
|
||||||
margin: const EdgeInsets.only(top:15, bottom: 15, left: 30, right: 30),
|
child: Row(
|
||||||
child: Row(
|
children: [
|
||||||
children: [
|
Expanded(
|
||||||
Expanded(child: Text("${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0", style: TextStyle(fontSize: 32.sp),)),
|
child: Text(
|
||||||
GestureDetector(
|
"${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0",
|
||||||
onTap: (){
|
style: TextStyle(fontSize: 24.sp),
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: type);
|
)),
|
||||||
},
|
GestureDetector(
|
||||||
child: Container(
|
onTap: () {
|
||||||
width: 50,
|
Navigator.pushNamed(
|
||||||
height: 25,
|
context, Routers.valueAddedServicesBuyPage,
|
||||||
decoration: BoxDecoration(
|
arguments: type);
|
||||||
color: AppColors.mainColor,
|
},
|
||||||
borderRadius: BorderRadius.circular(25)
|
child: Container(
|
||||||
),
|
width: 50,
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.buy!.tr, style: const TextStyle(color: Colors.white)))
|
height: 25,
|
||||||
),
|
decoration: BoxDecoration(
|
||||||
),
|
color: AppColors.mainColor,
|
||||||
],
|
borderRadius: BorderRadius.circular(25)),
|
||||||
|
child: Center(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.buy!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white, fontSize: 24.sp)))),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
// SizedBox(height:20.h),
|
),
|
||||||
Container(
|
),
|
||||||
margin: const EdgeInsets.only(top:10, bottom: 10),
|
// SizedBox(height:20.h),
|
||||||
// color: Colors.red,
|
Container(
|
||||||
// height: 100.h,
|
margin: const EdgeInsets.only(top: 10, bottom: 10),
|
||||||
child: Row(
|
// color: Colors.red,
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
// height: 100.h,
|
||||||
children: [
|
child: Row(
|
||||||
GestureDetector(
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
onTap: (){
|
children: [
|
||||||
if(type == 1){
|
GestureDetector(
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesListSMSTemplatePage);
|
onTap: () {
|
||||||
}else{
|
if (type == 1) {
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesListEmailTemplatePage);
|
Navigator.pushNamed(context,
|
||||||
}
|
Routers.valueAddedServicesListSMSTemplatePage);
|
||||||
},
|
} else {
|
||||||
child: Container(
|
Navigator.pushNamed(context,
|
||||||
// width:100,
|
Routers.valueAddedServicesListEmailTemplatePage);
|
||||||
// padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5),
|
}
|
||||||
child: Row(
|
},
|
||||||
children: [
|
child: Container(
|
||||||
SizedBox(width: 30.w,),
|
// width:100,
|
||||||
Image.asset("images/mine/icon_mine_valueAddedServices_buyIcon.png", width: 50.w, height: 50.w,),
|
// padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5),
|
||||||
Text((type == 1)?TranslationLoader.lanKeys!.customSMSTemplate!.tr:TranslationLoader.lanKeys!.customMailTemplate!.tr, style: TextStyle(fontSize: 32.sp),),
|
child: Row(
|
||||||
],
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
width: 30.w,
|
||||||
),
|
),
|
||||||
),
|
Image.asset(
|
||||||
|
"images/mine/icon_mine_valueAddedServices_buyIcon.png",
|
||||||
|
width: 36.w,
|
||||||
|
height: 36.w,
|
||||||
|
),
|
||||||
|
Text(
|
||||||
|
(type == 1)
|
||||||
|
? TranslationLoader.lanKeys!.customSMSTemplate!.tr
|
||||||
|
: TranslationLoader
|
||||||
|
.lanKeys!.customMailTemplate!.tr,
|
||||||
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
GestureDetector(
|
),
|
||||||
onTap: (){
|
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesBuyAndUseRecordManagePage);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width:90,
|
|
||||||
// height: 70.h,
|
|
||||||
margin: const EdgeInsets.only(left: 30, right: 30),
|
|
||||||
padding: EdgeInsets.only(top:5, bottom: 5, left: 5, right: 5),
|
|
||||||
// color: Colors.red,
|
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr, style: TextStyle(color: Colors.black, fontSize: 32.sp)))
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
GestureDetector(
|
||||||
]
|
onTap: () {
|
||||||
)
|
Navigator.pushNamed(context,
|
||||||
);
|
Routers.valueAddedServicesBuyAndUseRecordManagePage);
|
||||||
|
},
|
||||||
|
child: Container(
|
||||||
|
width: 90,
|
||||||
|
// height: 70.h,
|
||||||
|
margin: const EdgeInsets.only(left: 30, right: 30),
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
top: 5, bottom: 5, left: 5, right: 5),
|
||||||
|
// color: Colors.red,
|
||||||
|
child: Center(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.record!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.black, fontSize: 24.sp)))),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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';
|
||||||
@ -13,24 +12,32 @@ class ValueAddedServicesRealNamePage extends StatefulWidget {
|
|||||||
const ValueAddedServicesRealNamePage({Key? key}) : super(key: key);
|
const ValueAddedServicesRealNamePage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ValueAddedServicesRealNamePage> createState() => _ValueAddedServicesRealNamePageState();
|
State<ValueAddedServicesRealNamePage> createState() =>
|
||||||
|
_ValueAddedServicesRealNamePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ValueAddedServicesRealNamePageState extends State<ValueAddedServicesRealNamePage> {
|
class _ValueAddedServicesRealNamePageState
|
||||||
|
extends State<ValueAddedServicesRealNamePage> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppColors.mainBackgroundColor,
|
backgroundColor: AppColors.mainBackgroundColor,
|
||||||
appBar: TitleAppBar(barTitle: TranslationLoader.lanKeys!.realNameAuthentication!.tr, haveBack:true, backgroundColor: AppColors.mainColor),
|
appBar: TitleAppBar(
|
||||||
|
barTitle: TranslationLoader.lanKeys!.realNameAuthentication!.tr,
|
||||||
|
haveBack: true,
|
||||||
|
backgroundColor: AppColors.mainColor),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
// color: Colors.grey.shade300,
|
// color: Colors.grey.shade300,
|
||||||
padding: EdgeInsets.only(left:25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
padding: EdgeInsets.only(
|
||||||
child: Text(TranslationLoader.lanKeys!.buyRealNameTip!.tr)
|
left: 25.h, right: 25.h, top: 25.h, bottom: 10.h),
|
||||||
),
|
child: Text(
|
||||||
|
TranslationLoader.lanKeys!.buyRealNameTip!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.darkGrayTextColor, fontSize: 20.sp),
|
||||||
|
)),
|
||||||
middleWidget(),
|
middleWidget(),
|
||||||
bottomWidget()
|
bottomWidget()
|
||||||
],
|
],
|
||||||
@ -38,7 +45,7 @@ class _ValueAddedServicesRealNamePageState extends State<ValueAddedServicesRealN
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget middleWidget(){
|
Widget middleWidget() {
|
||||||
return Container(
|
return Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
// height: 100,
|
// height: 100,
|
||||||
@ -46,61 +53,66 @@ class _ValueAddedServicesRealNamePageState extends State<ValueAddedServicesRealN
|
|||||||
margin: EdgeInsets.all(10.h),
|
margin: EdgeInsets.all(10.h),
|
||||||
decoration: const BoxDecoration(
|
decoration: const BoxDecoration(
|
||||||
image: DecorationImage(
|
image: DecorationImage(
|
||||||
image: AssetImage("images/mine/icon_mine_valueAddedServices_noteTop.png"),
|
image: AssetImage(
|
||||||
fit: BoxFit.cover
|
"images/mine/icon_mine_valueAddedServices_noteTop.png"),
|
||||||
)
|
fit: BoxFit.cover)),
|
||||||
),
|
child: Column(children: [
|
||||||
child: Column(
|
// SizedBox(height:10),
|
||||||
children: [
|
Container(
|
||||||
// SizedBox(height:10),
|
margin:
|
||||||
Container(
|
const EdgeInsets.only(top: 15, bottom: 15, left: 30, right: 30),
|
||||||
margin: const EdgeInsets.only(top:15, bottom: 15, left: 30, right: 30),
|
child: Row(
|
||||||
child: Row(
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
children: [
|
||||||
children: [
|
Text(
|
||||||
Text("${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0", style: TextStyle(fontSize: 32.sp),)
|
"${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:0",
|
||||||
],
|
style: TextStyle(fontSize: 24.sp),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// SizedBox(height:20.h),
|
||||||
|
Container(
|
||||||
|
margin: const EdgeInsets.only(top: 10, bottom: 10),
|
||||||
|
// color: Colors.red,
|
||||||
|
// height: 100.h,
|
||||||
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: [
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {},
|
||||||
|
child: Container(
|
||||||
|
width: 200.w,
|
||||||
|
// height: 70.h,
|
||||||
|
// color: Colors.red,
|
||||||
|
child: Center(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.record!.tr,
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.black, fontSize: 24.sp)))),
|
||||||
),
|
),
|
||||||
),
|
GestureDetector(
|
||||||
// SizedBox(height:20.h),
|
onTap: () {
|
||||||
Container(
|
Navigator.pushNamed(
|
||||||
margin: const EdgeInsets.only(top:10, bottom: 10),
|
context, Routers.valueAddedServicesBuyPage,
|
||||||
// color: Colors.red,
|
arguments: 3);
|
||||||
// height: 100.h,
|
},
|
||||||
child: Row(
|
child: Container(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
width: 200.w,
|
||||||
children: [
|
// height: 70.h,
|
||||||
GestureDetector(
|
// color: Colors.red,
|
||||||
onTap: (){
|
child: Center(
|
||||||
|
child: Text(TranslationLoader.lanKeys!.buy!.tr,
|
||||||
},
|
style: TextStyle(
|
||||||
child: Container(
|
color: AppColors.mainColor,
|
||||||
width: 200.w,
|
fontSize: 24.sp)))),
|
||||||
// height: 70.h,
|
|
||||||
// color: Colors.red,
|
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.record!.tr, style: TextStyle(color: Colors.black, fontSize: 32.sp)))
|
|
||||||
),
|
|
||||||
),
|
|
||||||
GestureDetector(
|
|
||||||
onTap: (){
|
|
||||||
Navigator.pushNamed(context, Routers.valueAddedServicesBuyPage, arguments: 3);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: 200.w,
|
|
||||||
// height: 70.h,
|
|
||||||
// color: Colors.red,
|
|
||||||
child: Center(child: Text(TranslationLoader.lanKeys!.buy!.tr, style: TextStyle(color: AppColors.mainColor, fontSize: 32.sp)))
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
]
|
),
|
||||||
)
|
),
|
||||||
);
|
]));
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget bottomWidget(){
|
Widget bottomWidget() {
|
||||||
return Container(
|
return Container(
|
||||||
width: 1.sw,
|
width: 1.sw,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
@ -110,39 +122,87 @@ class _ValueAddedServicesRealNamePageState extends State<ValueAddedServicesRealN
|
|||||||
Column(
|
Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
padding: EdgeInsets.only(top:20.h, bottom: 20.h, left: 30.w),
|
padding: EdgeInsets.only(top: 20.h, bottom: 20.h, left: 30.w),
|
||||||
child: Text(TranslationLoader.lanKeys!.buyRealNameSeletYouWantBuyTip!.tr, style: TextStyle(fontSize: 32.sp),)
|
child: Text(
|
||||||
),
|
TranslationLoader
|
||||||
|
.lanKeys!.buyRealNameSeletYouWantBuyTip!.tr,
|
||||||
|
style:
|
||||||
|
TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w600),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.forTheFirstTime!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true,
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.forTheFirstTime!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.onceDay!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.onceDay!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.weekOnce!.tr, rightTitle:"", allHeight:80.h, isHaveLine: true, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.weekOnce!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: true,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
CommonItem(leftTitel:TranslationLoader.lanKeys!.monthOnce!.tr, rightTitle:"", allHeight:80.h, isHaveLine: false, isHaveRightWidget: true,
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
CommonItem(
|
||||||
|
leftTitel: TranslationLoader.lanKeys!.monthOnce!.tr,
|
||||||
|
rightTitle: "",
|
||||||
|
allHeight: 60.h,
|
||||||
|
isHaveLine: false,
|
||||||
|
isHaveRightWidget: true,
|
||||||
rightWidget: GestureDetector(
|
rightWidget: GestureDetector(
|
||||||
onTap: (){
|
onTap: () {},
|
||||||
|
child: Row(
|
||||||
},
|
children: [
|
||||||
child: Row(children: [Image.asset('images/icon_round_unSelet.png', width: 40.w, height: 40.w,),],),)
|
Image.asset(
|
||||||
),
|
'images/icon_round_unSelet.png',
|
||||||
|
width: 30.w,
|
||||||
|
height: 30.w,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ class CommonItem extends StatelessWidget {
|
|||||||
Widget? rightWidget;
|
Widget? rightWidget;
|
||||||
Function()? action;
|
Function()? action;
|
||||||
double? allHeight;
|
double? allHeight;
|
||||||
|
bool? isTipsImg;
|
||||||
|
|
||||||
CommonItem(
|
CommonItem(
|
||||||
{Key? key,
|
{Key? key,
|
||||||
@ -21,6 +22,7 @@ class CommonItem extends StatelessWidget {
|
|||||||
this.isHaveLine = false,
|
this.isHaveLine = false,
|
||||||
this.isHaveRightWidget = false,
|
this.isHaveRightWidget = false,
|
||||||
this.rightWidget,
|
this.rightWidget,
|
||||||
|
this.isTipsImg,
|
||||||
this.action})
|
this.action})
|
||||||
: super(key: key);
|
: super(key: key);
|
||||||
|
|
||||||
@ -39,9 +41,18 @@ class CommonItem extends StatelessWidget {
|
|||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 20.w),
|
SizedBox(width: 20.w),
|
||||||
Expanded(
|
Text(leftTitel!, style: TextStyle(fontSize: 22.sp)),
|
||||||
child: Text(leftTitel!, style: TextStyle(fontSize: 22.sp))),
|
SizedBox(
|
||||||
SizedBox(width: 20.w),
|
width: 6.w,
|
||||||
|
),
|
||||||
|
isTipsImg == true
|
||||||
|
? Image.asset(
|
||||||
|
'images/icon_tips_Q.png',
|
||||||
|
width: 20.w,
|
||||||
|
height: 20.w,
|
||||||
|
)
|
||||||
|
: Container(),
|
||||||
|
Expanded(child: SizedBox(width: 20.w)),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
@ -56,7 +67,7 @@ class CommonItem extends StatelessWidget {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width: 8.w),
|
isHaveDirection! ? SizedBox(width: 8.w) : Container(),
|
||||||
isHaveDirection!
|
isHaveDirection!
|
||||||
? Image.asset(
|
? Image.asset(
|
||||||
'images/icon_right_grey.png',
|
'images/icon_right_grey.png',
|
||||||
@ -64,7 +75,7 @@ class CommonItem extends StatelessWidget {
|
|||||||
height: 21.w,
|
height: 21.w,
|
||||||
)
|
)
|
||||||
: SizedBox(width: 20.w),
|
: SizedBox(width: 20.w),
|
||||||
SizedBox(width: 20.w),
|
isHaveDirection! ? SizedBox(width: 20.w) : Container(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
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 'screen_utils.dart';
|
import 'screen_utils.dart';
|
||||||
@ -10,7 +9,7 @@ List _listData = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const Color _bgColor = Color(0xFF2D2D2D);
|
const Color _bgColor = Color(0xFF2D2D2D);
|
||||||
const double _fontSize = 16.0;
|
const double _fontSize = 20.0;
|
||||||
const double _cellHeight = 50.0;
|
const double _cellHeight = 50.0;
|
||||||
const double _imgWH = 22.0;
|
const double _imgWH = 22.0;
|
||||||
|
|
||||||
@ -24,7 +23,7 @@ class JhPopMenus {
|
|||||||
Widget buildMenuCell(dataArr) {
|
Widget buildMenuCell(dataArr) {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount: dataArr.length,
|
itemCount: dataArr.length,
|
||||||
itemExtent: _cellHeight,
|
itemExtent: _cellHeight.h,
|
||||||
padding: const EdgeInsets.all(0.0),
|
padding: const EdgeInsets.all(0.0),
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
@ -37,10 +36,12 @@ class JhPopMenus {
|
|||||||
},
|
},
|
||||||
child: Row(
|
child: Row(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
const SizedBox(width: 25),
|
SizedBox(width: 25),
|
||||||
// Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white),
|
// Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white),
|
||||||
// const SizedBox(width: 15),
|
// const SizedBox(width: 15),
|
||||||
Text("你好", style: const TextStyle(color: Colors.white, fontSize: _fontSize)),
|
Text("你好",
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white, fontSize: _fontSize.sp)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -50,7 +51,7 @@ class JhPopMenus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget menusView(dataArr) {
|
Widget menusView(dataArr) {
|
||||||
var cellH = dataArr.length * _cellHeight;
|
var cellH = dataArr.length * _cellHeight.h;
|
||||||
var navH = JhScreenUtils.navigationBarHeight;
|
var navH = JhScreenUtils.navigationBarHeight;
|
||||||
return Positioned(
|
return Positioned(
|
||||||
right: 10,
|
right: 10,
|
||||||
@ -61,18 +62,27 @@ class JhPopMenus {
|
|||||||
Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5),
|
Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5),
|
||||||
ClipRRect(
|
ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(5),
|
borderRadius: BorderRadius.circular(5),
|
||||||
child: Container(color: _bgColor, width: 160, height: cellH, child: buildMenuCell(dataArr)),
|
child: Container(
|
||||||
|
color: _bgColor,
|
||||||
|
width: 160,
|
||||||
|
height: cellH,
|
||||||
|
child: buildMenuCell(dataArr)),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Navigator.of(context).push(DialogRouter(_BasePopMenus(child: menusView(_listData))));
|
Navigator.of(context)
|
||||||
|
.push(DialogRouter(_BasePopMenus(child: menusView(_listData))));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 显示带线带背景 pop
|
/// 显示带线带背景 pop
|
||||||
static void showLinePop(BuildContext context, {bool isShowBg = false, Function(int selectIndex, String selectText)? clickCallback,}) {
|
static void showLinePop(
|
||||||
|
BuildContext context, {
|
||||||
|
bool isShowBg = false,
|
||||||
|
Function(int selectIndex, String selectText)? clickCallback,
|
||||||
|
}) {
|
||||||
// 带线
|
// 带线
|
||||||
Widget buildMenuLineCell(dataArr) {
|
Widget buildMenuLineCell(dataArr) {
|
||||||
return ListView.separated(
|
return ListView.separated(
|
||||||
@ -87,28 +97,36 @@ class JhPopMenus {
|
|||||||
clickCallback?.call(index, _listData[index]['text']);
|
clickCallback?.call(index, _listData[index]['text']);
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
child: Container(
|
child: SizedBox(
|
||||||
height: _cellHeight,
|
height: _cellHeight.h,
|
||||||
padding: EdgeInsets.only(left: 20.h),
|
// padding: EdgeInsets.only(left: 20.h),
|
||||||
child: Row(
|
child: Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
// const SizedBox(width: 25),
|
// const SizedBox(width: 25),
|
||||||
// Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white),
|
// Image.asset(dataArr[index]['icon'], width: _imgWH, height: _imgWH, color: Colors.white),
|
||||||
// const SizedBox(width: 12),
|
// const SizedBox(width: 12),
|
||||||
Center(child: Text(dataArr[index]['text'], style: const TextStyle(color: Colors.white, fontSize: _fontSize)))
|
Center(
|
||||||
|
child: Text(dataArr[index]['text'],
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.white, fontSize: _fontSize.sp)))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
separatorBuilder: (context, index) =>
|
separatorBuilder: (context, index) => Divider(
|
||||||
const Divider(height: .1, indent: 50, endIndent: 0, color: Color(0xFFE6E6E6)),
|
height: .1,
|
||||||
|
indent: 20.w,
|
||||||
|
endIndent: 20.w,
|
||||||
|
color: Color(0xFFE6E6E6)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget menusView(dataArr) {
|
Widget menusView(dataArr) {
|
||||||
var cellH = dataArr.length * _cellHeight;
|
var cellH = dataArr.length * _cellHeight.h;
|
||||||
var navH = JhScreenUtils.navigationBarHeight;
|
var navH = JhScreenUtils.navigationBarHeight;
|
||||||
if (isShowBg == true) {
|
if (isShowBg == true) {
|
||||||
navH = navH - JhScreenUtils.topSafeHeight;
|
navH = navH - JhScreenUtils.topSafeHeight;
|
||||||
@ -124,7 +142,11 @@ class JhPopMenus {
|
|||||||
Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5),
|
Image.asset('images/ic_menu_up_arrow.png', width: 28, height: 5),
|
||||||
ClipRRect(
|
ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(5),
|
borderRadius: BorderRadius.circular(5),
|
||||||
child: Container(color: _bgColor, width: 180.w, height: cellH, child: buildMenuLineCell(dataArr)))
|
child: Container(
|
||||||
|
color: _bgColor,
|
||||||
|
width: 180.w,
|
||||||
|
height: cellH,
|
||||||
|
child: buildMenuLineCell(dataArr)))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -140,7 +162,8 @@ class JhPopMenus {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
Navigator.of(context).push(DialogRouter(_BasePopMenus(child: menusView(_listData))));
|
Navigator.of(context)
|
||||||
|
.push(DialogRouter(_BasePopMenus(child: menusView(_listData))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -148,7 +171,10 @@ class JhPopMenus {
|
|||||||
class _BasePopMenus extends Dialog {
|
class _BasePopMenus extends Dialog {
|
||||||
final child;
|
final child;
|
||||||
|
|
||||||
const _BasePopMenus({Key? key, this.child,}) : super(key: key);
|
const _BasePopMenus({
|
||||||
|
Key? key,
|
||||||
|
this.child,
|
||||||
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -176,7 +202,8 @@ class DialogRouter extends PageRouteBuilder {
|
|||||||
barrierColor: Colors.white10.withAlpha(1),
|
barrierColor: Colors.white10.withAlpha(1),
|
||||||
transitionDuration: const Duration(milliseconds: 150),
|
transitionDuration: const Duration(milliseconds: 150),
|
||||||
pageBuilder: (context, animation, secondaryAnimation) => page,
|
pageBuilder: (context, animation, secondaryAnimation) => page,
|
||||||
transitionsBuilder: (context, animation, secondaryAnimation, child) => child,
|
transitionsBuilder: (context, animation, secondaryAnimation, child) =>
|
||||||
|
child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -104,6 +104,8 @@ class LanKeyEntity {
|
|||||||
this.electricQuantity,
|
this.electricQuantity,
|
||||||
this.lockName,
|
this.lockName,
|
||||||
this.lockGrouping,
|
this.lockGrouping,
|
||||||
|
this.selectGroup,
|
||||||
|
this.createNewGroup,
|
||||||
this.adminOpenLockPassword,
|
this.adminOpenLockPassword,
|
||||||
this.update,
|
this.update,
|
||||||
this.updateElectricQuantityTip,
|
this.updateElectricQuantityTip,
|
||||||
@ -137,7 +139,8 @@ class LanKeyEntity {
|
|||||||
this.high,
|
this.high,
|
||||||
this.higher,
|
this.higher,
|
||||||
this.burglarAlarmTip,
|
this.burglarAlarmTip,
|
||||||
this.resetButtonTip,
|
this.resetButtonTip1,
|
||||||
|
this.resetButtonTip2,
|
||||||
this.calibrationTime,
|
this.calibrationTime,
|
||||||
this.setTheDSTMode,
|
this.setTheDSTMode,
|
||||||
this.diagnoseTip,
|
this.diagnoseTip,
|
||||||
@ -239,6 +242,7 @@ class LanKeyEntity {
|
|||||||
this.problemThree,
|
this.problemThree,
|
||||||
this.pleaseEnterYourAnswer,
|
this.pleaseEnterYourAnswer,
|
||||||
this.aboutToExpire,
|
this.aboutToExpire,
|
||||||
|
this.changeName,
|
||||||
this.designation,
|
this.designation,
|
||||||
this.state,
|
this.state,
|
||||||
this.wifiName,
|
this.wifiName,
|
||||||
@ -467,7 +471,8 @@ class LanKeyEntity {
|
|||||||
high = json['high'];
|
high = json['high'];
|
||||||
higher = json['higher'];
|
higher = json['higher'];
|
||||||
burglarAlarmTip = json['burglarAlarmTip'];
|
burglarAlarmTip = json['burglarAlarmTip'];
|
||||||
resetButtonTip = json['resetButtonTip'];
|
resetButtonTip1 = json['resetButtonTip1'];
|
||||||
|
resetButtonTip2 = json['resetButtonTip2'];
|
||||||
calibrationTime = json['calibrationTime'];
|
calibrationTime = json['calibrationTime'];
|
||||||
setTheDSTMode = json['setTheDSTMode'];
|
setTheDSTMode = json['setTheDSTMode'];
|
||||||
diagnoseTip = json['diagnoseTip'];
|
diagnoseTip = json['diagnoseTip'];
|
||||||
@ -502,6 +507,8 @@ class LanKeyEntity {
|
|||||||
electricQuantity = json['electricQuantity'];
|
electricQuantity = json['electricQuantity'];
|
||||||
lockName = json['lockName'];
|
lockName = json['lockName'];
|
||||||
lockGrouping = json['lockGrouping'];
|
lockGrouping = json['lockGrouping'];
|
||||||
|
selectGroup = json['selectGroup'];
|
||||||
|
createNewGroup = json['createNewGroup'];
|
||||||
adminOpenLockPassword = json['adminOpenLockPassword'];
|
adminOpenLockPassword = json['adminOpenLockPassword'];
|
||||||
update = json['update'];
|
update = json['update'];
|
||||||
updateElectricQuantityTip = json['updateElectricQuantityTip'];
|
updateElectricQuantityTip = json['updateElectricQuantityTip'];
|
||||||
@ -615,6 +622,7 @@ class LanKeyEntity {
|
|||||||
problemThree = json['problemThree'];
|
problemThree = json['problemThree'];
|
||||||
pleaseEnterYourAnswer = json['pleaseEnterYourAnswer'];
|
pleaseEnterYourAnswer = json['pleaseEnterYourAnswer'];
|
||||||
aboutToExpire = json['aboutToExpire'];
|
aboutToExpire = json['aboutToExpire'];
|
||||||
|
changeName = json['changeName'];
|
||||||
|
|
||||||
designation = json['designation'];
|
designation = json['designation'];
|
||||||
state = json['state'];
|
state = json['state'];
|
||||||
@ -858,7 +866,8 @@ class LanKeyEntity {
|
|||||||
String? high;
|
String? high;
|
||||||
String? higher;
|
String? higher;
|
||||||
String? burglarAlarmTip;
|
String? burglarAlarmTip;
|
||||||
String? resetButtonTip;
|
String? resetButtonTip1;
|
||||||
|
String? resetButtonTip2;
|
||||||
String? calibrationTime;
|
String? calibrationTime;
|
||||||
String? setTheDSTMode;
|
String? setTheDSTMode;
|
||||||
String? diagnoseTip;
|
String? diagnoseTip;
|
||||||
@ -961,6 +970,8 @@ class LanKeyEntity {
|
|||||||
String? authorizedAdmin;
|
String? authorizedAdmin;
|
||||||
String? addAuthorizedAdmin;
|
String? addAuthorizedAdmin;
|
||||||
String? lockGroup;
|
String? lockGroup;
|
||||||
|
String? selectGroup;
|
||||||
|
String? createNewGroup;
|
||||||
String? transferSmartLock;
|
String? transferSmartLock;
|
||||||
String? selectiveLock;
|
String? selectiveLock;
|
||||||
String? recipientInformation;
|
String? recipientInformation;
|
||||||
@ -1002,6 +1013,7 @@ class LanKeyEntity {
|
|||||||
String? problemThree;
|
String? problemThree;
|
||||||
String? pleaseEnterYourAnswer;
|
String? pleaseEnterYourAnswer;
|
||||||
String? aboutToExpire;
|
String? aboutToExpire;
|
||||||
|
String? changeName;
|
||||||
|
|
||||||
String? designation;
|
String? designation;
|
||||||
String? state;
|
String? state;
|
||||||
@ -1241,7 +1253,8 @@ class LanKeyEntity {
|
|||||||
map['high'] = high;
|
map['high'] = high;
|
||||||
map['higher'] = higher;
|
map['higher'] = higher;
|
||||||
map['burglarAlarmTip'] = burglarAlarmTip;
|
map['burglarAlarmTip'] = burglarAlarmTip;
|
||||||
map['resetButtonTip'] = resetButtonTip;
|
map['resetButtonTip1'] = resetButtonTip1;
|
||||||
|
map['resetButtonTip2'] = resetButtonTip2;
|
||||||
map['calibrationTime'] = calibrationTime;
|
map['calibrationTime'] = calibrationTime;
|
||||||
map['setTheDSTMode'] = setTheDSTMode;
|
map['setTheDSTMode'] = setTheDSTMode;
|
||||||
map['diagnoseTip'] = diagnoseTip;
|
map['diagnoseTip'] = diagnoseTip;
|
||||||
@ -1390,6 +1403,7 @@ class LanKeyEntity {
|
|||||||
map['problemThree'] = problemThree;
|
map['problemThree'] = problemThree;
|
||||||
map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer;
|
map['pleaseEnterYourAnswer'] = pleaseEnterYourAnswer;
|
||||||
map['aboutToExpire'] = aboutToExpire;
|
map['aboutToExpire'] = aboutToExpire;
|
||||||
|
map['changeName'] = changeName;
|
||||||
|
|
||||||
map['designation'] = designation;
|
map['designation'] = designation;
|
||||||
map['state'] = state;
|
map['state'] = state;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user