app-starlock/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart
Daisy 9158ce71e7 1,新增获取邮件模版列表API对接及逻辑处理
2,新增获取默认邮件模版(电子钥匙、密码类型)API对接
2024-06-05 18:24:59 +08:00

163 lines
6.4 KiB
Dart
Executable File

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/common/XSConstantMacro/XSConstantMacro.dart';
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_logic.dart';
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_state.dart';
import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/use_record_list_arg.dart';
import '../../../appRouters.dart';
import '../../../app_settings/app_colors.dart';
import '../../../tools/commonItem.dart';
import '../../../tools/titleAppBar.dart';
import '../../../translations/trans_lib.dart';
class ValueAddedServicesNoteAndEmailDetailPage extends StatefulWidget {
const ValueAddedServicesNoteAndEmailDetailPage({Key? key}) : super(key: key);
@override
State<ValueAddedServicesNoteAndEmailDetailPage> createState() =>
_ValueAddedServicesNoteAndEmailDetailPageState();
}
class _ValueAddedServicesNoteAndEmailDetailPageState
extends State<ValueAddedServicesNoteAndEmailDetailPage> {
final ValueAddedServicesNoteAndEmailDetailLogic logic =
Get.put(ValueAddedServicesNoteAndEmailDetailLogic());
final ValueAddedServicesNoteAndEmailDetailState state =
Get.find<ValueAddedServicesNoteAndEmailDetailLogic>().state;
@override
void initState() {
super.initState();
logic.getServicePackageBuyUrl();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: state.selectType.value == 1
? TranslationLoader.lanKeys!.note!.tr
: TranslationLoader.lanKeys!.mail!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Column(
children: <Widget>[
Container(
width: 1.sw,
padding: EdgeInsets.only(
left: 25.h, right: 25.h, top: 25.h, bottom: 10.h),
child: Text(
state.selectType.value == 1
? TranslationLoader.lanKeys!.smsBuyTip!.tr
: TranslationLoader.lanKeys!.emailBuyTip!.tr,
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 18.sp),
)),
middleWidget(state.selectType.value),
],
),
);
}
Widget middleWidget(int type) {
return Container(
width: 1.sw,
margin: EdgeInsets.all(10.h),
decoration: const BoxDecoration(
image: DecorationImage(
image: AssetImage(
'images/mine/icon_mine_valueAddedServices_noteTop.png'),
fit: BoxFit.cover)),
child: Column(children: <Widget>[
Container(
margin:
const EdgeInsets.only(top: 15, bottom: 15, left: 30, right: 30),
child: Row(
children: <Widget>[
Expanded(
child: Obx(() => Text(
'${TranslationLoader.lanKeys!.currentRemainingQuantity!.tr}:${state.remainCount.value}',
style: TextStyle(fontSize: 24.sp),
))),
GestureDetector(
onTap: () {
Get.toNamed(Routers.advancedFeaturesWebPage, arguments: {
'webBuyType': state.selectType.value == 1
? XSConstantMacro.webBuyTypeSMS
: XSConstantMacro.webBuyTypeEmail,
});
},
child: Container(
width: 50,
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)))),
),
],
),
),
Container(
margin: const EdgeInsets.only(top: 10, bottom: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
GestureDetector(
onTap: () {
Navigator.pushNamed(
context, Routers.customSMSTemplateListPage,
arguments: <String, int>{'type': type});
},
child: Row(
children: <Widget>[
SizedBox(
width: 30.w,
),
Image.asset(
'images/mine/icon_mine_valueAddedServices_buyIcon.png',
width: 36.w,
height: 36.w,
),
Text(
(type == 1) ? '自定义短信模版'.tr : '自定义邮件模版'.tr,
style: TextStyle(fontSize: 24.sp),
),
],
),
),
GestureDetector(
onTap: () {
if (type == 1) {
Get.toNamed(Routers.valueAddedServicesRecordPage,
arguments: UseRecordListArg.sms);
} else if (type == 2) {
Get.toNamed(Routers.valueAddedServicesRecordPage,
arguments: UseRecordListArg.email);
}
},
child: Container(
width: 90,
// height: 70.h,
margin: const EdgeInsets.only(left: 10, 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)))),
),
],
),
),
]));
}
}