feat: 适配相关
This commit is contained in:
parent
8d699dee2f
commit
4c13315bb2
|
@ -83,8 +83,8 @@ final theme = ThemeData(
|
||||||
scaffoldBackgroundColor: AppTheme.nearlyWhite,
|
scaffoldBackgroundColor: AppTheme.nearlyWhite,
|
||||||
bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
||||||
backgroundColor: AppTheme.nearlyWhite,
|
backgroundColor: AppTheme.nearlyWhite,
|
||||||
unselectedLabelStyle: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
unselectedLabelStyle: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
selectedLabelStyle: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
selectedLabelStyle: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
selectedItemColor: AppTheme.primaryColor),
|
selectedItemColor: AppTheme.primaryColor),
|
||||||
tabBarTheme: const TabBarTheme(
|
tabBarTheme: const TabBarTheme(
|
||||||
indicator: BoxDecoration(
|
indicator: BoxDecoration(
|
||||||
|
@ -97,16 +97,16 @@ final theme = ThemeData(
|
||||||
backgroundColor: AppTheme.primaryColor,
|
backgroundColor: AppTheme.primaryColor,
|
||||||
titleTextStyle: TextStyle(
|
titleTextStyle: TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: ScreenAdaper.sp(30),
|
fontSize: ScreenAdaper.height(30),
|
||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
inputDecorationTheme: InputDecorationTheme(
|
inputDecorationTheme: InputDecorationTheme(
|
||||||
floatingLabelStyle: TextStyle(
|
floatingLabelStyle: TextStyle(
|
||||||
color: AppTheme.primaryColor,
|
color: AppTheme.primaryColor,
|
||||||
fontSize: ScreenAdaper.sp(30),
|
fontSize: ScreenAdaper.height(30),
|
||||||
),
|
),
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
),
|
),
|
||||||
border: OutlineInputBorder(
|
border: OutlineInputBorder(
|
||||||
borderRadius: BorderRadius.circular(ScreenAdaper.sp(15))),
|
borderRadius: BorderRadius.circular(ScreenAdaper.sp(15))),
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
/// Global config
|
/// Global config
|
||||||
class GloablConfig {
|
class GloablConfig {
|
||||||
// static const BASE_URL = "http://10.0.2.2:7001/api/";
|
// static const BASE_URL = "http://10.0.2.2:8001/api/";
|
||||||
// static const BASE_URL = "http://144.123.43.138:3001/api/";
|
// static const OSS_URL = "http://10.0.2.2:8001";
|
||||||
// static const OSS_URL = "http://144.123.43.138:3001";
|
static const BASE_URL = "http://144.123.43.138:3001/api/";
|
||||||
static const BASE_URL = "http://192.168.60.220:8001/api/";
|
static const OSS_URL = "http://144.123.43.138:3001";
|
||||||
static const OSS_URL = "http://192.168.60.220:8001";
|
// static const BASE_URL = "http://192.168.60.220:8001/api/";
|
||||||
|
// static const OSS_URL = "http://192.168.60.220:8001";
|
||||||
static const DOMAIN_NAME = "山矿通";
|
static const DOMAIN_NAME = "山矿通";
|
||||||
static const DEBUG = true;
|
static const DEBUG = true;
|
||||||
static const PRIVACY_POLICY = 'http://h5.heeru.xyz/privacyPolicy.html';
|
static const PRIVACY_POLICY = 'http://h5.heeru.xyz/privacyPolicy.html';
|
||||||
|
|
|
@ -26,7 +26,7 @@ class ChangeButtonRow extends StatelessWidget {
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.arrow_back_ios_rounded,
|
Icons.arrow_back_ios_rounded,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
size: ScreenAdaper.sp(30),
|
size: ScreenAdaper.height(30),
|
||||||
)),
|
)),
|
||||||
)),
|
)),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
|
@ -38,7 +38,7 @@ class ChangeButtonRow extends StatelessWidget {
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.arrow_forward_ios_rounded,
|
Icons.arrow_forward_ios_rounded,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
size: ScreenAdaper.sp(30),
|
size: ScreenAdaper.height(30),
|
||||||
))),
|
))),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -28,7 +28,7 @@ class CustomAppBar extends StatelessWidget {
|
||||||
fontWeight: FontWeight.w400,
|
fontWeight: FontWeight.w400,
|
||||||
height: 0,
|
height: 0,
|
||||||
letterSpacing: 2,
|
letterSpacing: 2,
|
||||||
fontSize: ScreenAdaper.sp(25)),
|
fontSize: ScreenAdaper.height(25)),
|
||||||
),
|
),
|
||||||
Obx(
|
Obx(
|
||||||
() => Text(
|
() => Text(
|
||||||
|
@ -38,7 +38,7 @@ class CustomAppBar extends StatelessWidget {
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
letterSpacing: 2,
|
letterSpacing: 2,
|
||||||
height: 0,
|
height: 0,
|
||||||
fontSize: ScreenAdaper.sp(30)),
|
fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -71,7 +71,7 @@ class CustomAppBar extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: ScreenAdaper.height(70),
|
height: ScreenAdaper.height(70),
|
||||||
width: ScreenAdaper.width(70),
|
width: ScreenAdaper.height(70),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(20),
|
borderRadius: BorderRadius.circular(20),
|
||||||
color: AppTheme.primaryColorLight,
|
color: AppTheme.primaryColorLight,
|
||||||
|
@ -87,7 +87,7 @@ class CustomAppBar extends StatelessWidget {
|
||||||
]),
|
]),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.calendar_month_outlined,
|
Icons.calendar_month_outlined,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -21,7 +21,7 @@ class Dates extends StatelessWidget {
|
||||||
? Colors.white
|
? Colors.white
|
||||||
: Colors.black,
|
: Colors.black,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(18),
|
fontSize: ScreenAdaper.height(18),
|
||||||
height: 0),
|
height: 0),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -34,7 +34,7 @@ class Dates extends StatelessWidget {
|
||||||
? Colors.white
|
? Colors.white
|
||||||
: Colors.black,
|
: Colors.black,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(30),
|
fontSize: ScreenAdaper.height(30),
|
||||||
height: 0),
|
height: 0),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -47,7 +47,7 @@ class Dates extends StatelessWidget {
|
||||||
? Colors.white
|
? Colors.white
|
||||||
: Colors.black,
|
: Colors.black,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(16)),
|
fontSize: ScreenAdaper.height(16)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -85,7 +85,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
// icon: Icon(
|
// icon: Icon(
|
||||||
// Icons.more_vert_rounded,
|
// Icons.more_vert_rounded,
|
||||||
// color: Colors.grey,
|
// color: Colors.grey,
|
||||||
// size: ScreenAdaper.sp(24),
|
// size: ScreenAdaper.height(24),
|
||||||
// ),
|
// ),
|
||||||
// shape: OutlineInputBorder(
|
// shape: OutlineInputBorder(
|
||||||
// borderRadius:
|
// borderRadius:
|
||||||
|
@ -102,7 +102,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
// Icon(
|
// Icon(
|
||||||
// Icons.edit_note,
|
// Icons.edit_note,
|
||||||
// color: Colors.orange,
|
// color: Colors.orange,
|
||||||
// size: ScreenAdaper.sp(14),
|
// size: ScreenAdaper.height(14),
|
||||||
// ),
|
// ),
|
||||||
// SizedBox(
|
// SizedBox(
|
||||||
// width:
|
// width:
|
||||||
|
@ -120,7 +120,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
// Icon(
|
// Icon(
|
||||||
// Icons.delete_outline,
|
// Icons.delete_outline,
|
||||||
// color: Colors.orange,
|
// color: Colors.orange,
|
||||||
// size: ScreenAdaper.sp(14),
|
// size: ScreenAdaper.height(14),
|
||||||
// ),
|
// ),
|
||||||
// SizedBox(
|
// SizedBox(
|
||||||
// width:
|
// width:
|
||||||
|
@ -138,7 +138,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
// Icon(
|
// Icon(
|
||||||
// Icons.done_all_outlined,
|
// Icons.done_all_outlined,
|
||||||
// color: Colors.orange,
|
// color: Colors.orange,
|
||||||
// size: ScreenAdaper.sp(14),
|
// size: ScreenAdaper.height(14),
|
||||||
// ),
|
// ),
|
||||||
// SizedBox(
|
// SizedBox(
|
||||||
// width:
|
// width:
|
||||||
|
@ -173,7 +173,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(25)),
|
fontSize: ScreenAdaper.height(25)),
|
||||||
)),
|
)),
|
||||||
buildInOrOut()
|
buildInOrOut()
|
||||||
],
|
],
|
||||||
|
@ -183,7 +183,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.grey,
|
color: AppTheme.grey,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(20)),
|
fontSize: ScreenAdaper.height(20)),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: ScreenAdaper.height(5),
|
height: ScreenAdaper.height(5),
|
||||||
|
@ -194,7 +194,8 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
child: Text(
|
child: Text(
|
||||||
'项目: ${controller.list[ind][index].project?.name}',
|
'项目: ${controller.list[ind][index].project?.name}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.w600, fontSize: ScreenAdaper.sp(20)),
|
fontWeight: FontWeight.w600,
|
||||||
|
fontSize: ScreenAdaper.height(20)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -208,13 +209,15 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
child: Text(
|
child: Text(
|
||||||
'数量: ${controller.list[ind][index].quantity} ${controller.list[ind][index].product?.unit?.label ?? '-'}',
|
'数量: ${controller.list[ind][index].quantity} ${controller.list[ind][index].product?.unit?.label ?? '-'}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.w600, fontSize: ScreenAdaper.sp(20)),
|
fontWeight: FontWeight.w600,
|
||||||
|
fontSize: ScreenAdaper.height(25)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
controller.list[ind][index].agent ?? '-',
|
controller.list[ind][index].agent ?? '-',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontWeight: FontWeight.w600, fontSize: ScreenAdaper.sp(20)),
|
fontWeight: FontWeight.w600,
|
||||||
|
fontSize: ScreenAdaper.height(25)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -228,10 +231,10 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(ScreenAdaper.sp(15)),
|
borderRadius: BorderRadius.circular(ScreenAdaper.sp(15)),
|
||||||
child: FadeInCacheImage(
|
child: FadeInCacheImage(
|
||||||
width: ScreenAdaper.width(100),
|
width: ScreenAdaper.height(100),
|
||||||
height: ScreenAdaper.width(100),
|
height: ScreenAdaper.height(100),
|
||||||
url: controller.list[ind][index].files.isNotEmpty
|
url: controller.list[ind][index].files.isNotEmpty
|
||||||
? '${GloablConfig.OSS_URL}${controller.list[ind][index].files[0]?.path}'
|
? '${GloablConfig.OSS_URL}${controller.list[ind][index].files[0].path}'
|
||||||
: ''),
|
: ''),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -248,7 +251,7 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
return Container(
|
return Container(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
height: ScreenAdaper.height(40),
|
height: ScreenAdaper.height(40),
|
||||||
width: ScreenAdaper.width(40),
|
width: ScreenAdaper.height(40),
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
shape: BoxShape.circle,
|
shape: BoxShape.circle,
|
||||||
gradient: LinearGradient(
|
gradient: LinearGradient(
|
||||||
|
@ -266,8 +269,10 @@ class InventoryInoutCard extends StatelessWidget {
|
||||||
]),
|
]),
|
||||||
child: Text(
|
child: Text(
|
||||||
textInOut,
|
textInOut,
|
||||||
style: const TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.nearlyWhite, fontWeight: FontWeight.w600),
|
fontSize: ScreenAdaper.sp(25),
|
||||||
|
color: AppTheme.nearlyWhite,
|
||||||
|
fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,8 @@ class InventoryInoutInfo extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'出入库详情',
|
'出入库详情',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25), color: AppTheme.nearlyWhite),
|
fontSize: ScreenAdaper.height(25),
|
||||||
|
color: AppTheme.nearlyWhite),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -160,10 +161,10 @@ class InventoryInoutInfo extends StatelessWidget {
|
||||||
leading: Text(
|
leading: Text(
|
||||||
'${leading ?? ''}: ',
|
'${leading ?? ''}: ',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25), fontWeight: FontWeight.w600),
|
fontSize: ScreenAdaper.height(25), fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
trailing: Text('${trailing ?? ''}',
|
trailing: Text('${trailing ?? ''}',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25))));
|
style: TextStyle(fontSize: ScreenAdaper.height(25))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ class Grid extends StatelessWidget {
|
||||||
color: AppTheme.black,
|
color: AppTheme.black,
|
||||||
fontWeight: FontWeight.w600,
|
fontWeight: FontWeight.w600,
|
||||||
letterSpacing: ScreenAdaper.width(2),
|
letterSpacing: ScreenAdaper.width(2),
|
||||||
fontSize: ScreenAdaper.sp(30)),
|
fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: GridView.builder(
|
: GridView.builder(
|
||||||
|
|
|
@ -31,9 +31,10 @@ class TodayButton extends StatelessWidget {
|
||||||
colors: [AppTheme.primaryColorLight, AppTheme.primaryColor])),
|
colors: [AppTheme.primaryColorLight, AppTheme.primaryColor])),
|
||||||
child: Text(
|
child: Text(
|
||||||
TextEnum.backToTodayButtonText,
|
TextEnum.backToTodayButtonText,
|
||||||
|
// '${ScreenAdaper.screenShortDistance()}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -14,9 +14,6 @@ class UperBody extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(
|
|
||||||
height: defaultPadding,
|
|
||||||
),
|
|
||||||
CustomAppBar(),
|
CustomAppBar(),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: ScreenAdaper.height(150),
|
height: ScreenAdaper.height(150),
|
||||||
|
|
|
@ -43,6 +43,7 @@ class InventoryInoutController extends GetxController {
|
||||||
|
|
||||||
/// 出库还是入库picker
|
/// 出库还是入库picker
|
||||||
Future<void> showInOrOutPickerDialog() async {
|
Future<void> showInOrOutPickerDialog() async {
|
||||||
|
final moveDis = ScreenAdaper.screenShortDistance() / 10;
|
||||||
showDialog(
|
showDialog(
|
||||||
context: Get.overlayContext!,
|
context: Get.overlayContext!,
|
||||||
builder: (_) => Align(
|
builder: (_) => Align(
|
||||||
|
@ -62,7 +63,7 @@ class InventoryInoutController extends GetxController {
|
||||||
children: [
|
children: [
|
||||||
AnimatedPositioned(
|
AnimatedPositioned(
|
||||||
duration: const Duration(milliseconds: 100),
|
duration: const Duration(milliseconds: 100),
|
||||||
left: value * 80,
|
left: value * moveDis,
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius:
|
borderRadius:
|
||||||
const BorderRadius.all(Radius.circular(30)),
|
const BorderRadius.all(Radius.circular(30)),
|
||||||
|
@ -96,8 +97,9 @@ class InventoryInoutController extends GetxController {
|
||||||
EdgeInsets.zero),
|
EdgeInsets.zero),
|
||||||
),
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
height: ScreenAdaper.height(350),
|
height:
|
||||||
width: ScreenAdaper.height(350),
|
ScreenAdaper.screenShortDistance() / 3,
|
||||||
|
width: ScreenAdaper.screenShortDistance() / 3,
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
@ -105,7 +107,7 @@ class InventoryInoutController extends GetxController {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.add_circle_outline,
|
Icons.add_circle_outline,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
size: ScreenAdaper.sp(80),
|
size: ScreenAdaper.height(80),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: ScreenAdaper.height(10),
|
height: ScreenAdaper.height(10),
|
||||||
|
@ -115,7 +117,7 @@ class InventoryInoutController extends GetxController {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
decoration: TextDecoration.none,
|
decoration: TextDecoration.none,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
fontSize: ScreenAdaper.sp(60),
|
fontSize: ScreenAdaper.height(60),
|
||||||
letterSpacing: ScreenAdaper.width(5),
|
letterSpacing: ScreenAdaper.width(5),
|
||||||
fontWeight: FontWeight.w700,
|
fontWeight: FontWeight.w700,
|
||||||
),
|
),
|
||||||
|
@ -130,7 +132,7 @@ class InventoryInoutController extends GetxController {
|
||||||
),
|
),
|
||||||
AnimatedPositioned(
|
AnimatedPositioned(
|
||||||
duration: const Duration(milliseconds: 100),
|
duration: const Duration(milliseconds: 100),
|
||||||
right: value * 80,
|
right: value * moveDis,
|
||||||
child: ClipRRect(
|
child: ClipRRect(
|
||||||
borderRadius:
|
borderRadius:
|
||||||
const BorderRadius.all(Radius.circular(30)),
|
const BorderRadius.all(Radius.circular(30)),
|
||||||
|
@ -164,8 +166,9 @@ class InventoryInoutController extends GetxController {
|
||||||
EdgeInsets.zero),
|
EdgeInsets.zero),
|
||||||
),
|
),
|
||||||
child: Container(
|
child: Container(
|
||||||
height: ScreenAdaper.height(350),
|
height:
|
||||||
width: ScreenAdaper.height(350),
|
ScreenAdaper.screenShortDistance() / 3,
|
||||||
|
width: ScreenAdaper.screenShortDistance() / 3,
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
@ -173,7 +176,7 @@ class InventoryInoutController extends GetxController {
|
||||||
Icon(
|
Icon(
|
||||||
Icons.remove_circle_outline,
|
Icons.remove_circle_outline,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
size: ScreenAdaper.sp(80),
|
size: ScreenAdaper.height(80),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: ScreenAdaper.height(10),
|
height: ScreenAdaper.height(10),
|
||||||
|
@ -183,7 +186,7 @@ class InventoryInoutController extends GetxController {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
decoration: TextDecoration.none,
|
decoration: TextDecoration.none,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
fontSize: ScreenAdaper.sp(60),
|
fontSize: ScreenAdaper.height(60),
|
||||||
letterSpacing: ScreenAdaper.width(5),
|
letterSpacing: ScreenAdaper.width(5),
|
||||||
fontWeight: FontWeight.w700,
|
fontWeight: FontWeight.w700,
|
||||||
),
|
),
|
||||||
|
@ -205,47 +208,36 @@ class InventoryInoutController extends GetxController {
|
||||||
|
|
||||||
/// 新建出入库dialog
|
/// 新建出入库dialog
|
||||||
Future showInventoryInoutCreateDialog(int inOrOut) async {
|
Future showInventoryInoutCreateDialog(int inOrOut) async {
|
||||||
final isTablet = Responsive.isTablet(Get.context!);
|
return Get.generalDialog(
|
||||||
return isTablet
|
barrierLabel: "CreateInventoryInout",
|
||||||
? Get.generalDialog(
|
barrierDismissible: true,
|
||||||
barrierLabel: "CreateInventoryInout",
|
transitionDuration: const Duration(milliseconds: 400),
|
||||||
barrierDismissible: true,
|
pageBuilder: (_, __, ___) {
|
||||||
transitionDuration: const Duration(milliseconds: 400),
|
return NewInventoryInout(
|
||||||
pageBuilder: (_, __, ___) {
|
inOrOut: inOrOut,
|
||||||
return NewInventoryInout(
|
);
|
||||||
inOrOut: inOrOut,
|
},
|
||||||
);
|
transitionBuilder: (_, anim, __, child) {
|
||||||
},
|
Tween<Offset> tween;
|
||||||
transitionBuilder: (_, anim, __, child) {
|
tween = Tween(begin: const Offset(0, -1), end: Offset.zero);
|
||||||
Tween<Offset> tween;
|
return SlideTransition(
|
||||||
tween = Tween(begin: const Offset(0, -1), end: Offset.zero);
|
position: tween.animate(
|
||||||
return SlideTransition(
|
CurvedAnimation(parent: anim, curve: Curves.easeInOut),
|
||||||
position: tween.animate(
|
),
|
||||||
CurvedAnimation(parent: anim, curve: Curves.easeInOut),
|
child: child,
|
||||||
),
|
);
|
||||||
child: child,
|
},
|
||||||
);
|
).then((value) {
|
||||||
},
|
if (value != null) {
|
||||||
).then((value) {
|
getData();
|
||||||
if (value != null) {
|
}
|
||||||
getData();
|
});
|
||||||
}
|
|
||||||
})
|
|
||||||
: showModalBottomSheet(
|
|
||||||
elevation: 0,
|
|
||||||
isScrollControlled: true,
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
context: Get.overlayContext!,
|
|
||||||
builder: (context) {
|
|
||||||
return NewInventoryInout(inOrOut: inOrOut);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 出入库详情dialog
|
// 出入库详情dialog
|
||||||
Future showInventoryInoutInfoDialog(int id) async {
|
Future showInventoryInoutInfoDialog(int id) async {
|
||||||
ModalUtil.showGeneralDialog(
|
ModalUtil.showGeneralDialog(
|
||||||
width: ScreenAdaper.width(Get.width - 100),
|
width: ScreenAdaper.screenShortDistance() - ScreenAdaper.width(100),
|
||||||
height: ScreenAdaper.height(Get.height - 100),
|
height: ScreenAdaper.height(Get.height - 100),
|
||||||
content: InventoryInoutInfo(inventoryInoutId: id),
|
content: InventoryInoutInfo(inventoryInoutId: id),
|
||||||
offset: const Offset(0, -1))
|
offset: const Offset(0, -1))
|
||||||
|
|
|
@ -17,7 +17,7 @@ class LandingPage extends StatelessWidget {
|
||||||
child: Stack(children: [
|
child: Stack(children: [
|
||||||
const BackColors(),
|
const BackColors(),
|
||||||
SafeArea(
|
SafeArea(
|
||||||
top: false,
|
top: true,
|
||||||
child: Obx(() => Scaffold(
|
child: Obx(() => Scaffold(
|
||||||
floatingActionButtonLocation:
|
floatingActionButtonLocation:
|
||||||
FloatingActionButtonLocation.centerDocked,
|
FloatingActionButtonLocation.centerDocked,
|
||||||
|
|
|
@ -55,7 +55,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
fontWeight: FontWeight.w700,
|
fontWeight: FontWeight.w700,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
letterSpacing: ScreenAdaper.sp(5),
|
letterSpacing: ScreenAdaper.sp(5),
|
||||||
fontSize: ScreenAdaper.sp(70)),
|
fontSize: ScreenAdaper.height(70)),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
@ -114,7 +114,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
textStyle: TextStyle(
|
textStyle: TextStyle(
|
||||||
letterSpacing: 5,
|
letterSpacing: 5,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(25)),
|
fontSize: ScreenAdaper.height(25)),
|
||||||
backgroundColor: AppTheme.primaryColor),
|
backgroundColor: AppTheme.primaryColor),
|
||||||
onPressed: _controller.doLogin,
|
onPressed: _controller.doLogin,
|
||||||
child: const Text('登录'),
|
child: const Text('登录'),
|
||||||
|
@ -135,7 +135,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
onFieldSubmitted: (value) {
|
onFieldSubmitted: (value) {
|
||||||
_controller.passwordFocusNode.requestFocus();
|
_controller.passwordFocusNode.requestFocus();
|
||||||
},
|
},
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
onChanged: (value) {},
|
onChanged: (value) {},
|
||||||
validator: (String? value) {
|
validator: (String? value) {
|
||||||
if (value == null || value == '') {
|
if (value == null || value == '') {
|
||||||
|
@ -157,7 +157,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
onFieldSubmitted: (value) {
|
onFieldSubmitted: (value) {
|
||||||
_controller.doLogin();
|
_controller.doLogin();
|
||||||
},
|
},
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
onChanged: (value) {},
|
onChanged: (value) {},
|
||||||
validator: (String? value) {
|
validator: (String? value) {
|
||||||
return (value ?? '').length >= 6 ? null : '密码长度至少6位';
|
return (value ?? '').length >= 6 ? null : '密码长度至少6位';
|
||||||
|
@ -174,7 +174,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
'忘记密码?',
|
'忘记密码?',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.grey,
|
color: Colors.grey,
|
||||||
fontSize: ScreenAdaper.sp(20),
|
fontSize: ScreenAdaper.height(20),
|
||||||
decoration: TextDecoration.underline,
|
decoration: TextDecoration.underline,
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
|
|
@ -60,7 +60,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
letterSpacing: ScreenAdaper.width(5),
|
letterSpacing: ScreenAdaper.width(5),
|
||||||
fontSize: ScreenAdaper.sp(70),
|
fontSize: ScreenAdaper.height(70),
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
foreground: Paint()
|
foreground: Paint()
|
||||||
..style = PaintingStyle.stroke
|
..style = PaintingStyle.stroke
|
||||||
|
@ -73,7 +73,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
fontWeight: FontWeight.w700,
|
fontWeight: FontWeight.w700,
|
||||||
color: AppTheme.nearlyWhite.withOpacity(0.9),
|
color: AppTheme.nearlyWhite.withOpacity(0.9),
|
||||||
letterSpacing: ScreenAdaper.sp(5),
|
letterSpacing: ScreenAdaper.sp(5),
|
||||||
fontSize: ScreenAdaper.sp(70)),
|
fontSize: ScreenAdaper.height(70)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -141,7 +141,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
textStyle: TextStyle(
|
textStyle: TextStyle(
|
||||||
letterSpacing: 5,
|
letterSpacing: 5,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(25)),
|
fontSize: ScreenAdaper.height(25)),
|
||||||
backgroundColor: AppTheme.primaryColor),
|
backgroundColor: AppTheme.primaryColor),
|
||||||
onPressed: _controller.doLogin,
|
onPressed: _controller.doLogin,
|
||||||
child: const Text('登录'),
|
child: const Text('登录'),
|
||||||
|
@ -178,20 +178,21 @@ class LoginScreen extends StatelessWidget {
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
prefixIcon: Icon(
|
prefixIcon: Icon(
|
||||||
Icons.person_2_outlined,
|
Icons.person_2_outlined,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
),
|
),
|
||||||
errorStyle: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
errorStyle: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
contentPadding: EdgeInsets.symmetric(
|
// contentPadding: EdgeInsets.symmetric(
|
||||||
horizontal: ScreenAdaper.width(30),
|
// horizontal: ScreenAdaper.width(30),
|
||||||
vertical: ScreenAdaper.height(10)),
|
// vertical: ScreenAdaper.height(10)),
|
||||||
hintText: '用户名',
|
hintText: '用户名',
|
||||||
|
hintStyle: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
focusedBorder: InputBorder.none),
|
focusedBorder: InputBorder.none),
|
||||||
onFieldSubmitted: (value) {
|
onFieldSubmitted: (value) {
|
||||||
_controller.passwordFocusNode.requestFocus();
|
_controller.passwordFocusNode.requestFocus();
|
||||||
},
|
},
|
||||||
autovalidateMode: AutovalidateMode.onUserInteraction,
|
autovalidateMode: AutovalidateMode.onUserInteraction,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
_controller.username = value;
|
_controller.username = value;
|
||||||
},
|
},
|
||||||
|
@ -204,9 +205,9 @@ class LoginScreen extends StatelessWidget {
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
prefixIcon: Icon(
|
prefixIcon: Icon(
|
||||||
Icons.lock_outlined,
|
Icons.lock_outlined,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
),
|
),
|
||||||
errorStyle: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
errorStyle: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
contentPadding: EdgeInsets.symmetric(
|
contentPadding: EdgeInsets.symmetric(
|
||||||
horizontal: ScreenAdaper.width(30),
|
horizontal: ScreenAdaper.width(30),
|
||||||
vertical: ScreenAdaper.height(10)),
|
vertical: ScreenAdaper.height(10)),
|
||||||
|
@ -218,7 +219,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
onFieldSubmitted: (value) {
|
onFieldSubmitted: (value) {
|
||||||
_controller.doLogin();
|
_controller.doLogin();
|
||||||
},
|
},
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
_controller.password = value;
|
_controller.password = value;
|
||||||
},
|
},
|
||||||
|
@ -236,7 +237,7 @@ class LoginScreen extends StatelessWidget {
|
||||||
'忘记密码?',
|
'忘记密码?',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.grey,
|
color: Colors.grey,
|
||||||
fontSize: ScreenAdaper.sp(20),
|
fontSize: ScreenAdaper.height(20),
|
||||||
decoration: TextDecoration.underline,
|
decoration: TextDecoration.underline,
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
|
|
@ -77,7 +77,7 @@ class _MinePageState extends State<MinePage>
|
||||||
AuthStore.to.userInfo.value.nickname ?? '',
|
AuthStore.to.userInfo.value.nickname ?? '',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
letterSpacing: ScreenAdaper.width(5),
|
letterSpacing: ScreenAdaper.width(5),
|
||||||
fontSize: ScreenAdaper.sp(30),
|
fontSize: ScreenAdaper.height(30),
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
foreground: Paint()
|
foreground: Paint()
|
||||||
..style = PaintingStyle.stroke
|
..style = PaintingStyle.stroke
|
||||||
|
@ -89,7 +89,7 @@ class _MinePageState extends State<MinePage>
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
letterSpacing: ScreenAdaper.width(5),
|
letterSpacing: ScreenAdaper.width(5),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: ScreenAdaper.sp(30),
|
fontSize: ScreenAdaper.height(30),
|
||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -39,7 +39,7 @@ class MineSettingsPage extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'退出登录',
|
'退出登录',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(20),
|
fontSize: ScreenAdaper.height(20),
|
||||||
fontWeight: FontWeight.w600),
|
fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -65,7 +65,7 @@ class MineSettingsPage extends StatelessWidget {
|
||||||
// children: [
|
// children: [
|
||||||
// Text(
|
// Text(
|
||||||
// 'Delete acount',
|
// 'Delete acount',
|
||||||
// style: TextStyle(fontSize: ScreenAdaper.sp(18)),
|
// style: TextStyle(fontSize: ScreenAdaper.height(18)),
|
||||||
// ),
|
// ),
|
||||||
// ],
|
// ],
|
||||||
// )));
|
// )));
|
||||||
|
|
|
@ -28,7 +28,7 @@ class UserInfoPage extends StatelessWidget {
|
||||||
'Save',
|
'Save',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: const Color(0xFFB0F320),
|
color: const Color(0xFFB0F320),
|
||||||
fontSize: ScreenAdaper.sp(18)),
|
fontSize: ScreenAdaper.height(18)),
|
||||||
)),
|
)),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: ScreenAdaper.width(5),
|
width: ScreenAdaper.width(5),
|
||||||
|
@ -51,14 +51,15 @@ class UserInfoPage extends StatelessWidget {
|
||||||
TextFormField(
|
TextFormField(
|
||||||
controller: _controller.nickNameController,
|
controller: _controller.nickNameController,
|
||||||
cursorColor: const Color.fromARGB(255, 87, 86, 86),
|
cursorColor: const Color.fromARGB(255, 87, 86, 86),
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(18), color: Colors.black),
|
style:
|
||||||
|
TextStyle(fontSize: ScreenAdaper.height(18), color: Colors.black),
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
contentPadding: EdgeInsets.fromLTRB(
|
contentPadding: EdgeInsets.fromLTRB(
|
||||||
ScreenAdaper.width(12), 0, ScreenAdaper.width(12), 0),
|
ScreenAdaper.width(12), 0, ScreenAdaper.width(12), 0),
|
||||||
labelText: "Nick Name",
|
labelText: "Nick Name",
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
color: const Color.fromARGB(255, 136, 136, 136),
|
color: const Color.fromARGB(255, 136, 136, 136),
|
||||||
fontSize: ScreenAdaper.sp(18)),
|
fontSize: ScreenAdaper.height(18)),
|
||||||
enabledBorder: const UnderlineInputBorder(
|
enabledBorder: const UnderlineInputBorder(
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: Color.fromARGB(153, 191, 190, 190),
|
color: Color.fromARGB(153, 191, 190, 190),
|
||||||
|
@ -82,7 +83,7 @@ class UserInfoPage extends StatelessWidget {
|
||||||
// labelText: "Date of birth",
|
// labelText: "Date of birth",
|
||||||
// labelStyle: TextStyle(
|
// labelStyle: TextStyle(
|
||||||
// color: const Color.fromARGB(255, 136, 136, 136),
|
// color: const Color.fromARGB(255, 136, 136, 136),
|
||||||
// fontSize: ScreenAdaper.sp(18)),
|
// fontSize: ScreenAdaper.height(18)),
|
||||||
// enabledBorder: const UnderlineInputBorder(
|
// enabledBorder: const UnderlineInputBorder(
|
||||||
// borderSide: BorderSide(
|
// borderSide: BorderSide(
|
||||||
// color: Color.fromARGB(153, 191, 190, 190),
|
// color: Color.fromARGB(153, 191, 190, 190),
|
||||||
|
@ -124,7 +125,7 @@ class UserInfoPage extends StatelessWidget {
|
||||||
// ));
|
// ));
|
||||||
// },
|
// },
|
||||||
// style:
|
// style:
|
||||||
// TextStyle(fontSize: ScreenAdaper.sp(18), color: Colors.black),
|
// TextStyle(fontSize: ScreenAdaper.height(18), color: Colors.black),
|
||||||
// cursorColor: const Color.fromARGB(255, 87, 86, 86)),
|
// cursorColor: const Color.fromARGB(255, 87, 86, 86)),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: ScreenAdaper.height(15),
|
height: ScreenAdaper.height(15),
|
||||||
|
@ -137,7 +138,7 @@ class UserInfoPage extends StatelessWidget {
|
||||||
// labelText: "Country",
|
// labelText: "Country",
|
||||||
// labelStyle: TextStyle(
|
// labelStyle: TextStyle(
|
||||||
// color: const Color.fromARGB(255, 136, 136, 136),
|
// color: const Color.fromARGB(255, 136, 136, 136),
|
||||||
// fontSize: ScreenAdaper.sp(18)),
|
// fontSize: ScreenAdaper.height(18)),
|
||||||
// enabledBorder: const UnderlineInputBorder(
|
// enabledBorder: const UnderlineInputBorder(
|
||||||
// borderSide: BorderSide(
|
// borderSide: BorderSide(
|
||||||
// color: Color.fromARGB(153, 191, 190, 190),
|
// color: Color.fromARGB(153, 191, 190, 190),
|
||||||
|
@ -168,14 +169,14 @@ class UserInfoPage extends StatelessWidget {
|
||||||
// child: Text(
|
// child: Text(
|
||||||
// e,
|
// e,
|
||||||
// style: TextStyle(
|
// style: TextStyle(
|
||||||
// fontSize: ScreenAdaper.sp(30)),
|
// fontSize: ScreenAdaper.height(30)),
|
||||||
// ),
|
// ),
|
||||||
// ))
|
// ))
|
||||||
// .toList(),
|
// .toList(),
|
||||||
// )));
|
// )));
|
||||||
// },
|
// },
|
||||||
// style:
|
// style:
|
||||||
// TextStyle(fontSize: ScreenAdaper.sp(18), color: Colors.black),
|
// TextStyle(fontSize: ScreenAdaper.height(18), color: Colors.black),
|
||||||
// cursorColor: const Color.fromARGB(255, 87, 86, 86))
|
// cursorColor: const Color.fromARGB(255, 87, 86, 86))
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -20,7 +20,7 @@ class AgentSearch extends StatelessWidget {
|
||||||
AgentSearch({super.key, this.onSelected, this.beforeSelectedCheck});
|
AgentSearch({super.key, this.onSelected, this.beforeSelectedCheck});
|
||||||
final controller = Get.put(AgentSearchController());
|
final controller = Get.put(AgentSearchController());
|
||||||
final listTitleTextStyle =
|
final listTitleTextStyle =
|
||||||
TextStyle(fontSize: ScreenAdaper.sp(20), fontWeight: FontWeight.w600);
|
TextStyle(fontSize: ScreenAdaper.height(20), fontWeight: FontWeight.w600);
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -79,7 +79,7 @@ class AgentSearch extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildList() {
|
Widget buildList() {
|
||||||
final textStyle = TextStyle(fontSize: ScreenAdaper.sp(22));
|
final textStyle = TextStyle(fontSize: ScreenAdaper.height(22));
|
||||||
return Obx(() => SmartRefresher(
|
return Obx(() => SmartRefresher(
|
||||||
enablePullDown: true,
|
enablePullDown: true,
|
||||||
enablePullUp: true,
|
enablePullUp: true,
|
||||||
|
@ -130,7 +130,7 @@ class AgentSearch extends StatelessWidget {
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${controller.list[index].nickname}',
|
'${controller.list[index].nickname}',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
),
|
),
|
||||||
if (controller.list[index].dept != null) ...[
|
if (controller.list[index].dept != null) ...[
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
|
|
@ -19,7 +19,7 @@ class InventorySearch extends StatelessWidget {
|
||||||
{super.key, this.onInventorySelected, this.beforeSelectedCheck});
|
{super.key, this.onInventorySelected, this.beforeSelectedCheck});
|
||||||
final controller = Get.put(InventorySearchController());
|
final controller = Get.put(InventorySearchController());
|
||||||
final listTitleTextStyle =
|
final listTitleTextStyle =
|
||||||
TextStyle(fontSize: ScreenAdaper.sp(20), fontWeight: FontWeight.w600);
|
TextStyle(fontSize: ScreenAdaper.height(25), fontWeight: FontWeight.w600);
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -83,8 +83,8 @@ class InventorySearch extends StatelessWidget {
|
||||||
|
|
||||||
Widget buildHasInventoryPicker() {
|
Widget buildHasInventoryPicker() {
|
||||||
return Container(
|
return Container(
|
||||||
width: ScreenAdaper.width(150),
|
width: ScreenAdaper.width(200),
|
||||||
constraints: BoxConstraints(minWidth: ScreenAdaper.width(150)),
|
constraints: BoxConstraints(minWidth: ScreenAdaper.width(200)),
|
||||||
child: Obx(
|
child: Obx(
|
||||||
() => DropdownButtonFormField(
|
() => DropdownButtonFormField(
|
||||||
value: controller.hasInventoryStatus.value,
|
value: controller.hasInventoryStatus.value,
|
||||||
|
@ -118,7 +118,7 @@ class InventorySearch extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildInventoryList() {
|
Widget buildInventoryList() {
|
||||||
final textStyle = TextStyle(fontSize: ScreenAdaper.sp(22));
|
final textStyle = TextStyle(fontSize: ScreenAdaper.height(25));
|
||||||
return Obx(() => SmartRefresher(
|
return Obx(() => SmartRefresher(
|
||||||
enablePullDown: true,
|
enablePullDown: true,
|
||||||
enablePullUp: true,
|
enablePullUp: true,
|
||||||
|
@ -132,14 +132,20 @@ class InventorySearch extends StatelessWidget {
|
||||||
child: Empty(text: '暂无库存'),
|
child: Empty(text: '暂无库存'),
|
||||||
)
|
)
|
||||||
: Table(columnWidths: {
|
: Table(columnWidths: {
|
||||||
0: FixedColumnWidth(100),
|
0: MinColumnWidth(
|
||||||
1: FlexColumnWidth(2),
|
|
||||||
2: MinColumnWidth(
|
|
||||||
FixedColumnWidth(200), FixedColumnWidth(200)),
|
|
||||||
3: MinColumnWidth(
|
|
||||||
FixedColumnWidth(100), FixedColumnWidth(100)),
|
|
||||||
4: MinColumnWidth(
|
|
||||||
FixedColumnWidth(80), FixedColumnWidth(80)),
|
FixedColumnWidth(80), FixedColumnWidth(80)),
|
||||||
|
1: FlexColumnWidth(ScreenAdaper.screenShortDistance() / 4),
|
||||||
|
2: FlexColumnWidth(ScreenAdaper.screenShortDistance() / 4),
|
||||||
|
3: MinColumnWidth(
|
||||||
|
FixedColumnWidth(
|
||||||
|
ScreenAdaper.screenShortDistance() / 8),
|
||||||
|
FixedColumnWidth(
|
||||||
|
ScreenAdaper.screenShortDistance() / 8)),
|
||||||
|
4: MinColumnWidth(
|
||||||
|
FixedColumnWidth(
|
||||||
|
ScreenAdaper.screenShortDistance() / 8),
|
||||||
|
FixedColumnWidth(
|
||||||
|
ScreenAdaper.screenShortDistance() / 8)),
|
||||||
}, children: [
|
}, children: [
|
||||||
// table header
|
// table header
|
||||||
TableRow(
|
TableRow(
|
||||||
|
@ -217,7 +223,7 @@ class InventorySearch extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'${itemData.product?.company?.name}',
|
'${itemData.product?.company?.name}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(15),
|
fontSize: ScreenAdaper.height(15),
|
||||||
color: AppTheme.grey),
|
color: AppTheme.grey),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -15,7 +15,7 @@ class ProductSearch extends StatelessWidget {
|
||||||
ProductSearch({super.key, this.onProductSelected});
|
ProductSearch({super.key, this.onProductSelected});
|
||||||
final controller = Get.put(ProductSearchController());
|
final controller = Get.put(ProductSearchController());
|
||||||
final listTitleTextStyle =
|
final listTitleTextStyle =
|
||||||
TextStyle(fontSize: ScreenAdaper.sp(20), fontWeight: FontWeight.w600);
|
TextStyle(fontSize: ScreenAdaper.height(20), fontWeight: FontWeight.w600);
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
|
@ -121,7 +121,7 @@ class ProductSearch extends StatelessWidget {
|
||||||
BoxConstraints(minWidth: ScreenAdaper.width(100)),
|
BoxConstraints(minWidth: ScreenAdaper.width(100)),
|
||||||
child: Text(
|
child: Text(
|
||||||
itemData.productNumber!,
|
itemData.productNumber!,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
style: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -133,12 +133,12 @@ class ProductSearch extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'${itemData.name}',
|
'${itemData.name}',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
style: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'${itemData.company?.name}',
|
'${itemData.company?.name}',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(15),
|
fontSize: ScreenAdaper.height(15),
|
||||||
color: AppTheme.grey),
|
color: AppTheme.grey),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
|
|
@ -34,11 +34,10 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
return SafeArea(
|
return SafeArea(
|
||||||
top: false, // 设置为false以避免保留顶部状态栏的空间
|
top: false, // 设置为false以避免保留顶部状态栏的空间
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: PreferredSize(
|
appBar: AppBar(
|
||||||
preferredSize: Size.fromHeight(ScreenAdaper.height(
|
title: Text(
|
||||||
kToolbarHeight)), // 这里使用kToolbarHeight,它是不包含状态栏的AppBar的推荐高度
|
inOrOut == InventoryInOrOutEnum.In ? '入库登记' : '出库登记',
|
||||||
child: AppBar(
|
style: TextStyle(fontSize: ScreenAdaper.height(35)),
|
||||||
title: const Text('出入库登记'),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
resizeToAvoidBottomInset: true,
|
resizeToAvoidBottomInset: true,
|
||||||
|
@ -63,7 +62,51 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
Widget buildForm() {
|
Widget buildForm() {
|
||||||
double formVerticalGap = 20.0;
|
double formVerticalGap = 20.0;
|
||||||
double formHorizontalGap = 20.0;
|
double formHorizontalGap = 20.0;
|
||||||
final children = [
|
final phoneChildren = [
|
||||||
|
buildProductPicker(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
buildProjectPicker(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
buildQuantity(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
if (inOrOut == InventoryInOrOutEnum.In) ...[
|
||||||
|
Expanded(flex: 1, child: buildUnitPrice()),
|
||||||
|
SizedBox(
|
||||||
|
width: ScreenAdaper.width(formHorizontalGap),
|
||||||
|
),
|
||||||
|
Expanded(flex: 1, child: buildAmount())
|
||||||
|
],
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
buildDatePicker(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
buildAgent(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
if (inOrOut == InventoryInOrOutEnum.In) buildPositionBottomPicker(),
|
||||||
|
SizedBox(
|
||||||
|
height: ScreenAdaper.height(formVerticalGap),
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [Expanded(child: buildRemark())],
|
||||||
|
),
|
||||||
|
buildImageUploadQueue()
|
||||||
|
];
|
||||||
|
final tabletChildren = [
|
||||||
Row(children: [
|
Row(children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
flex: 3,
|
flex: 3,
|
||||||
|
@ -121,11 +164,10 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
),
|
),
|
||||||
buildImageUploadQueue()
|
buildImageUploadQueue()
|
||||||
];
|
];
|
||||||
|
|
||||||
final child = Column(
|
final child = Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: children,
|
children: ScreenAdaper.isTablet() ? tabletChildren : phoneChildren,
|
||||||
);
|
);
|
||||||
|
|
||||||
return Form(
|
return Form(
|
||||||
|
@ -152,7 +194,7 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
horizontal: ScreenAdaper.width(20)),
|
horizontal: ScreenAdaper.width(20)),
|
||||||
child: Text(
|
child: Text(
|
||||||
'${itemData.name}',
|
'${itemData.name}',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
style: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
)),
|
)),
|
||||||
suggestionsCallback: (String keyword) {
|
suggestionsCallback: (String keyword) {
|
||||||
return controller.getProjects(keyword: keyword);
|
return controller.getProjects(keyword: keyword);
|
||||||
|
@ -179,11 +221,11 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red, fontSize: ScreenAdaper.sp(30)),
|
color: Colors.red, fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'产品',
|
'产品',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
floatingLabelBehavior: FloatingLabelBehavior.always),
|
floatingLabelBehavior: FloatingLabelBehavior.always),
|
||||||
|
@ -300,11 +342,11 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red, fontSize: ScreenAdaper.sp(30)),
|
color: Colors.red, fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'经办人',
|
'经办人',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
floatingLabelBehavior: FloatingLabelBehavior.always),
|
floatingLabelBehavior: FloatingLabelBehavior.always),
|
||||||
|
@ -360,8 +402,9 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
];
|
];
|
||||||
return TextFormField(
|
return TextFormField(
|
||||||
controller: controller.positionTextController,
|
controller: controller.positionTextController,
|
||||||
decoration: const InputDecoration(
|
decoration: InputDecoration(
|
||||||
labelText: '库存位置',
|
label: Text('库存位置',
|
||||||
|
style: TextStyle(fontSize: ScreenAdaper.height(30))),
|
||||||
floatingLabelBehavior: FloatingLabelBehavior.always),
|
floatingLabelBehavior: FloatingLabelBehavior.always),
|
||||||
readOnly: true,
|
readOnly: true,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
@ -405,7 +448,7 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'*产品照片',
|
'*产品照片',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
color: AppTheme.secondPrimaryColor),
|
color: AppTheme.secondPrimaryColor),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -433,7 +476,7 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
'*经办人自拍',
|
'*经办人自拍',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
color: AppTheme.secondPrimaryColor),
|
color: AppTheme.secondPrimaryColor),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -509,7 +552,7 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
blurRadius: 3,
|
blurRadius: 3,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
|
@ -535,7 +578,7 @@ class NewInventoryInout extends StatelessWidget {
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.add_a_photo_rounded,
|
Icons.add_a_photo_rounded,
|
||||||
size: ScreenAdaper.sp(60),
|
size: ScreenAdaper.height(60),
|
||||||
color: AppTheme.primaryColor,
|
color: AppTheme.primaryColor,
|
||||||
))));
|
))));
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,10 +79,10 @@ class WorkBenchPage extends StatelessWidget {
|
||||||
colors: [AppTheme.primaryColorLight, AppTheme.primaryColor]),
|
colors: [AppTheme.primaryColorLight, AppTheme.primaryColor]),
|
||||||
boxShadow: [
|
boxShadow: [
|
||||||
BoxShadow(
|
BoxShadow(
|
||||||
color: AppTheme.black.withOpacity(0.5),
|
color: AppTheme.black.withOpacity(0.4),
|
||||||
offset: Offset(0, 0),
|
offset: Offset(0, 0),
|
||||||
blurRadius: 5,
|
blurRadius: 1,
|
||||||
spreadRadius: 2)
|
spreadRadius: 1)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
child: Stack(
|
child: Stack(
|
||||||
|
@ -96,7 +96,7 @@ class WorkBenchPage extends StatelessWidget {
|
||||||
works[index].title,
|
works[index].title,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
letterSpacing: ScreenAdaper.width(10),
|
letterSpacing: ScreenAdaper.width(10),
|
||||||
fontSize: ScreenAdaper.sp(40),
|
fontSize: ScreenAdaper.height(40),
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
foreground: Paint()
|
foreground: Paint()
|
||||||
..style = PaintingStyle.stroke
|
..style = PaintingStyle.stroke
|
||||||
|
@ -108,7 +108,7 @@ class WorkBenchPage extends StatelessWidget {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
letterSpacing: ScreenAdaper.width(10),
|
letterSpacing: ScreenAdaper.width(10),
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: ScreenAdaper.sp(40),
|
fontSize: ScreenAdaper.height(40),
|
||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -36,7 +36,7 @@ class LoadingUtil extends GetxService {
|
||||||
children: [
|
children: [
|
||||||
LoadingAnimationWidget.fourRotatingDots(
|
LoadingAnimationWidget.fourRotatingDots(
|
||||||
color: AppTheme.primaryColor,
|
color: AppTheme.primaryColor,
|
||||||
size: ScreenAdaper.sp(50),
|
size: ScreenAdaper.height(50),
|
||||||
),
|
),
|
||||||
if (status != null)
|
if (status != null)
|
||||||
SizedBox(width: ScreenAdaper.width(20)),
|
SizedBox(width: ScreenAdaper.width(20)),
|
||||||
|
@ -44,7 +44,7 @@ class LoadingUtil extends GetxService {
|
||||||
Text(status,
|
Text(status,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.primaryColor,
|
color: AppTheme.primaryColor,
|
||||||
fontSize: ScreenAdaper.sp(20)))
|
fontSize: ScreenAdaper.height(20)))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
@ -30,8 +30,8 @@ class ScreenAdaper {
|
||||||
: ScreenUtil().screenHeight;
|
: ScreenUtil().screenHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 获取 计算后的屏幕宽度
|
/// 获取 计算后屏幕最窄距离
|
||||||
static double screenWidth() {
|
static double screenShortDistance() {
|
||||||
return isLandspace() ? ScreenUtil().screenHeight : ScreenUtil().screenWidth;
|
return isLandspace() ? ScreenUtil().screenHeight : ScreenUtil().screenWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,4 +48,8 @@ class ScreenAdaper {
|
||||||
static isLandspace() {
|
static isLandspace() {
|
||||||
return Get.context?.orientation == Orientation.landscape;
|
return Get.context?.orientation == Orientation.landscape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static isTablet() {
|
||||||
|
return ScreenUtil().screenWidth > 650;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ class SnackBarUtil {
|
||||||
messageText: Text(
|
messageText: Text(
|
||||||
'$title',
|
'$title',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: ScreenAdaper.sp(25), color: AppTheme.nearlyWhite),
|
fontSize: ScreenAdaper.height(25), color: AppTheme.nearlyWhite),
|
||||||
),
|
),
|
||||||
margin: EdgeInsets.symmetric(
|
margin: EdgeInsets.symmetric(
|
||||||
horizontal: ScreenAdaper.width(20), vertical: 0),
|
horizontal: ScreenAdaper.width(20), vertical: 0),
|
||||||
|
|
|
@ -36,13 +36,14 @@ class BottomNavBar extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
Icon(
|
Icon(
|
||||||
controller.bottomNavItems![index].icon,
|
controller.bottomNavItems![index].icon,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
color: color,
|
color: color,
|
||||||
),
|
),
|
||||||
AutoSizeText(
|
AutoSizeText(
|
||||||
controller.bottomNavItems![index].label ?? '',
|
controller.bottomNavItems![index].label ?? '',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
style: TextStyle(color: color, fontSize: ScreenAdaper.sp(20)),
|
style:
|
||||||
|
TextStyle(color: color, fontSize: ScreenAdaper.height(20)),
|
||||||
group: autoSizeGroup,
|
group: autoSizeGroup,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -53,7 +54,7 @@ class BottomNavBar extends StatelessWidget {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// BottomNavigationBar(
|
// BottomNavigationBar(
|
||||||
// iconSize: ScreenAdaper.sp(40),
|
// iconsize: ScreenAdaper.height(40),
|
||||||
// type: BottomNavigationBarType.fixed,
|
// type: BottomNavigationBarType.fixed,
|
||||||
// items: bottomNavItems,
|
// items: bottomNavItems,
|
||||||
// showSelectedLabels: true,
|
// showSelectedLabels: true,
|
||||||
|
|
|
@ -31,7 +31,7 @@ class ZtDatePicker extends StatelessWidget {
|
||||||
floatingLabelBehavior: FloatingLabelBehavior.always,
|
floatingLabelBehavior: FloatingLabelBehavior.always,
|
||||||
prefixIcon: Icon(
|
prefixIcon: Icon(
|
||||||
Icons.date_range_outlined,
|
Icons.date_range_outlined,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
),
|
),
|
||||||
suffixIcon: textController.text.isNotEmpty
|
suffixIcon: textController.text.isNotEmpty
|
||||||
? IconButton(
|
? IconButton(
|
||||||
|
@ -54,11 +54,11 @@ class ZtDatePicker extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red, fontSize: ScreenAdaper.sp(30)),
|
color: Colors.red, fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
labelText,
|
labelText,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
])),
|
])),
|
||||||
keyboardType: TextInputType.none,
|
keyboardType: TextInputType.none,
|
||||||
|
|
|
@ -29,7 +29,7 @@ class ZtBaseDatePicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'取消',
|
'取消',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
)),
|
)),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
TextButton(
|
TextButton(
|
||||||
|
@ -48,7 +48,7 @@ class ZtBaseDatePicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'确定',
|
'确定',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
))
|
))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -35,7 +35,7 @@ class ZtBaseDatePicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'取消',
|
'取消',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
)),
|
)),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
TextButton(
|
TextButton(
|
||||||
|
@ -54,7 +54,7 @@ class ZtBaseDatePicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'确定',
|
'确定',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
))
|
))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -43,7 +43,7 @@ class ZtBottomSheetPicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'取消',
|
'取消',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
)),
|
)),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Center(
|
child: Center(
|
||||||
|
@ -51,7 +51,7 @@ class ZtBottomSheetPicker extends StatelessWidget {
|
||||||
title,
|
title,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.nearlyBlack,
|
color: AppTheme.nearlyBlack,
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
decoration: TextDecoration.none),
|
decoration: TextDecoration.none),
|
||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
|
@ -70,7 +70,7 @@ class ZtBottomSheetPicker extends StatelessWidget {
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
'确定',
|
'确定',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(25)),
|
style: TextStyle(fontSize: ScreenAdaper.height(25)),
|
||||||
))
|
))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
@ -48,11 +48,11 @@ class ZtNumberInput extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red, fontSize: ScreenAdaper.sp(30)),
|
color: Colors.red, fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
labelText,
|
labelText,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
focusedBorder: OutlineInputBorder(
|
focusedBorder: OutlineInputBorder(
|
||||||
|
|
|
@ -74,11 +74,11 @@ class ZtSearchSelect<T> extends StatelessWidget {
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red,
|
color: Colors.red,
|
||||||
fontSize: ScreenAdaper.sp(30)),
|
fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
labelText,
|
labelText,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
])));
|
])));
|
||||||
},
|
},
|
||||||
|
@ -88,7 +88,7 @@ class ZtSearchSelect<T> extends StatelessWidget {
|
||||||
height: ScreenAdaper.height(50),
|
height: ScreenAdaper.height(50),
|
||||||
child: Text(
|
child: Text(
|
||||||
'未找到记录',
|
'未找到记录',
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(20)),
|
style: TextStyle(fontSize: ScreenAdaper.height(20)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
itemBuilder: (context, itemData) {
|
itemBuilder: (context, itemData) {
|
||||||
|
|
|
@ -40,11 +40,11 @@ class ZtTextInput extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
"*",
|
"*",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Colors.red, fontSize: ScreenAdaper.sp(30)),
|
color: Colors.red, fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
labelText,
|
labelText,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
focusedBorder: OutlineInputBorder(
|
focusedBorder: OutlineInputBorder(
|
||||||
|
|
|
@ -17,7 +17,7 @@ class Empty extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
text ?? '',
|
text ?? '',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(fontSize: ScreenAdaper.sp(30)),
|
style: TextStyle(fontSize: ScreenAdaper.height(30)),
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
|
|
|
@ -75,7 +75,7 @@ class _FadeInCacheImageState extends State<FadeInCacheImage> {
|
||||||
width: widget.width,
|
width: widget.width,
|
||||||
height: widget.height,
|
height: widget.height,
|
||||||
child: Icon(Icons.image_not_supported,
|
child: Icon(Icons.image_not_supported,
|
||||||
size: ScreenAdaper.sp((widget.width ?? 200) * 3 / 4),
|
size: ScreenAdaper.height((widget.width ?? 200) * 3 / 4),
|
||||||
color: AppTheme.grey),
|
color: AppTheme.grey),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ class FloatingCreateButton extends StatelessWidget {
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.add,
|
Icons.add,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
size: ScreenAdaper.sp(70),
|
size: ScreenAdaper.height(70),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -36,14 +36,14 @@ class GradientButton extends StatelessWidget {
|
||||||
child: isLoading
|
child: isLoading
|
||||||
? LoadingAnimationWidget.fourRotatingDots(
|
? LoadingAnimationWidget.fourRotatingDots(
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
size: ScreenAdaper.sp(40),
|
size: ScreenAdaper.height(40),
|
||||||
)
|
)
|
||||||
: Text(
|
: Text(
|
||||||
buttonText,
|
buttonText,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
fontSize: ScreenAdaper.sp(25),
|
fontSize: ScreenAdaper.height(25),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -61,7 +61,7 @@ class _ImagePreivewState extends State<ImagePreivew> {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
decoration: TextDecoration.none,
|
decoration: TextDecoration.none,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
fontSize: ScreenAdaper.sp(20),
|
fontSize: ScreenAdaper.height(20),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -84,7 +84,7 @@ class _ImagePreivewState extends State<ImagePreivew> {
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.download_for_offline_sharp,
|
Icons.download_for_offline_sharp,
|
||||||
color: AppTheme.nearlyWhite,
|
color: AppTheme.nearlyWhite,
|
||||||
size: ScreenAdaper.sp(50),
|
size: ScreenAdaper.height(50),
|
||||||
),
|
),
|
||||||
))
|
))
|
||||||
],
|
],
|
||||||
|
|
|
@ -13,7 +13,7 @@ class LoadingIndicator extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return common
|
return common
|
||||||
? LoadingAnimationWidget.fourRotatingDots(
|
? LoadingAnimationWidget.fourRotatingDots(
|
||||||
color: AppTheme.primaryColorLight, size: ScreenAdaper.sp(45))
|
color: AppTheme.primaryColorLight, size: ScreenAdaper.height(45))
|
||||||
: CupertinoActivityIndicator(
|
: CupertinoActivityIndicator(
|
||||||
animating: animating,
|
animating: animating,
|
||||||
color: AppTheme.primaryColor,
|
color: AppTheme.primaryColor,
|
||||||
|
|
|
@ -30,7 +30,7 @@ class _RefreshFooterState extends State<RefreshFooter>
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildBody() {
|
Widget buildBody() {
|
||||||
TextStyle style = TextStyle(fontSize: ScreenAdaper.sp(18));
|
TextStyle style = TextStyle(fontSize: ScreenAdaper.height(18));
|
||||||
return CustomFooter(
|
return CustomFooter(
|
||||||
builder: (BuildContext context, LoadStatus? status) {
|
builder: (BuildContext context, LoadStatus? status) {
|
||||||
Widget body;
|
Widget body;
|
||||||
|
|
|
@ -39,7 +39,7 @@ class RefreshHeaderState extends RefreshIndicatorState<RefreshHeader>
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget buildContent(BuildContext context, RefreshStatus mode) {
|
Widget buildContent(BuildContext context, RefreshStatus mode) {
|
||||||
TextStyle style = TextStyle(fontSize: ScreenAdaper.sp(18));
|
TextStyle style = TextStyle(fontSize: ScreenAdaper.height(18));
|
||||||
Widget body;
|
Widget body;
|
||||||
if (mode == RefreshStatus.refreshing) {
|
if (mode == RefreshStatus.refreshing) {
|
||||||
body = const LoadingIndicator();
|
body = const LoadingIndicator();
|
||||||
|
|
Loading…
Reference in New Issue