|
|
@@ -0,0 +1,189 @@
|
|
|
+import 'package:electronic_assistant/module/main/controller.dart';
|
|
|
+import 'package:electronic_assistant/utils/app_info_util.dart';
|
|
|
+import 'package:electronic_assistant/utils/expand.dart';
|
|
|
+import 'package:flutter/cupertino.dart';
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
+import 'package:get/get.dart';
|
|
|
+
|
|
|
+import '../../resource/assets.gen.dart';
|
|
|
+import '../../resource/colors.gen.dart';
|
|
|
+import '../../resource/string.gen.dart';
|
|
|
+
|
|
|
+Widget buildDrawerContent(MainController controller) {
|
|
|
+ return SafeArea(
|
|
|
+ child: Padding(
|
|
|
+ padding: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ SizedBox(height: 12.h),
|
|
|
+ Row(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ SizedBox(
|
|
|
+ width: 44.w,
|
|
|
+ height: 44.w,
|
|
|
+ child: Assets.images.iconHomeNoLogin.image()),
|
|
|
+ SizedBox(width: 10.w),
|
|
|
+ Text(StringName.homeGoLogin.tr,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 20.sp,
|
|
|
+ color: ColorName.primaryTextColor,
|
|
|
+ fontWeight: FontWeight.bold)),
|
|
|
+ SizedBox(width: 8.w),
|
|
|
+ SizedBox(
|
|
|
+ height: 20.w, child: Assets.images.iconGoLoginArrow.image()),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ SizedBox(height: 12.h),
|
|
|
+ Container(
|
|
|
+ height: 72.w,
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ borderRadius: BorderRadius.circular(12.w),
|
|
|
+ border: Border.all(color: ColorName.white20, width: 2.w),
|
|
|
+ gradient: LinearGradient(
|
|
|
+ colors: ['#5B618D'.toColor(), '#283B58'.toColor()],
|
|
|
+ begin: Alignment.centerLeft,
|
|
|
+ end: Alignment.centerRight,
|
|
|
+ transform: const GradientRotation(-1.64061),
|
|
|
+ stops: const [0, 1.0],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ child: Row(
|
|
|
+ children: [
|
|
|
+ SizedBox(width: 16.w),
|
|
|
+ IntrinsicHeight(
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ SizedBox(
|
|
|
+ height: 18.h,
|
|
|
+ child: Assets.images.iconChargeCenterTxt.image()),
|
|
|
+ SizedBox(height: 4.h),
|
|
|
+ Text(StringName.mainNoLoginChargeTips.tr,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 12.sp, color: ColorName.white))
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ const Spacer(),
|
|
|
+ DecoratedBox(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: Colors.white,
|
|
|
+ borderRadius: BorderRadius.circular(12.w),
|
|
|
+ ),
|
|
|
+ child: Padding(
|
|
|
+ padding:
|
|
|
+ const EdgeInsets.symmetric(vertical: 4, horizontal: 11)
|
|
|
+ .w,
|
|
|
+ child: Text(
|
|
|
+ StringName.mainGoCharge.tr,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 14.sp,
|
|
|
+ color: '#374668'.toColor(),
|
|
|
+ fontWeight: FontWeight.bold),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(width: 18.w),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(height: 12.h),
|
|
|
+ Container(
|
|
|
+ padding: EdgeInsets.symmetric(vertical: 8.h),
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: ColorName.white,
|
|
|
+ borderRadius: BorderRadius.circular(12.w),
|
|
|
+ ),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconTempManagement.image(),
|
|
|
+ StringName.mainDrawerTemplateManagement.tr,
|
|
|
+ () {},
|
|
|
+ ),
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconIndustryChange.image(),
|
|
|
+ StringName.mainDrawerIndustryPositionChange.tr,
|
|
|
+ () {},
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(height: 8.h),
|
|
|
+ Container(
|
|
|
+ padding: EdgeInsets.symmetric(vertical: 8.h),
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ color: ColorName.white,
|
|
|
+ borderRadius: BorderRadius.circular(12.w),
|
|
|
+ ),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconDrawerPrivacyPolicy.image(),
|
|
|
+ StringName.privacyPolicy.tr,
|
|
|
+ () {},
|
|
|
+ ),
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconDrawerUserAgreement.image(),
|
|
|
+ StringName.userAgreement.tr,
|
|
|
+ () {},
|
|
|
+ ),
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconDrawerCheckUpdates.image(),
|
|
|
+ StringName.mainDrawerCheckUpdates.tr,
|
|
|
+ () {},
|
|
|
+ rightView: Text(
|
|
|
+ controller.versionName,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 12.sp, color: ColorName.tertiaryTextColor),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ buildOperationItem(
|
|
|
+ Assets.images.iconComplaintAndReport.image(),
|
|
|
+ StringName.mainDrawerComplaintAndReport.tr,
|
|
|
+ () {},
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ const Spacer(),
|
|
|
+ Padding(
|
|
|
+ padding: const EdgeInsets.only(bottom: 22).h,
|
|
|
+ child: Text(StringName.mainDrawerRecordNumber.tr,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 12.sp, color: ColorName.tertiaryTextColor)),
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+Widget buildOperationItem(Image icon, String title, Function onTap,
|
|
|
+ {Widget? rightView = const SizedBox.shrink()}) {
|
|
|
+ return GestureDetector(
|
|
|
+ onTap: () {
|
|
|
+ onTap();
|
|
|
+ },
|
|
|
+ child: Padding(
|
|
|
+ padding: const EdgeInsets.symmetric(vertical: 12).h,
|
|
|
+ child: Row(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ SizedBox(width: 16.w),
|
|
|
+ SizedBox(width: 20.w, height: 20.w, child: icon),
|
|
|
+ SizedBox(width: 8.w),
|
|
|
+ Expanded(
|
|
|
+ child: Text(title,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 14.sp, color: ColorName.primaryTextColor)),
|
|
|
+ ),
|
|
|
+ const Spacer(),
|
|
|
+ rightView ?? const SizedBox.shrink(),
|
|
|
+ SizedBox(width: 16.w),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+}
|