|
|
@@ -50,15 +50,20 @@ class NewDiscountPage extends BasePage<NewDiscountController> {
|
|
|
),
|
|
|
width: 360.w,
|
|
|
height: 392.w,
|
|
|
-
|
|
|
child: SingleChildScrollView(
|
|
|
- child: Expanded(
|
|
|
- child: Column(
|
|
|
- children: [
|
|
|
- _buildGoodsCard(),
|
|
|
- SizedBox(height: 200.w),
|
|
|
- ],
|
|
|
- ),
|
|
|
+ child: Column(
|
|
|
+ children: [
|
|
|
+ SizedBox(height: 16.w),
|
|
|
+ _buildGoodsCard(),
|
|
|
+ SizedBox(height: 12.w),
|
|
|
+ _buildPayWayCard(),
|
|
|
+ SizedBox(height: 8.w),
|
|
|
+ _buildSelectedDesc(),
|
|
|
+ SizedBox(height: 30.w),
|
|
|
+ _buildMemberCard(),
|
|
|
+
|
|
|
+ SizedBox(height: 200.w),
|
|
|
+ ],
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
@@ -269,98 +274,42 @@ class NewDiscountPage extends BasePage<NewDiscountController> {
|
|
|
onTap: controller.clickPayNow,
|
|
|
child: Container(
|
|
|
width: 328.w,
|
|
|
- height: 54.h,
|
|
|
+ height: 56.w,
|
|
|
decoration: ShapeDecoration(
|
|
|
- gradient: LinearGradient(
|
|
|
- begin: Alignment(0.60, -0.39),
|
|
|
- end: Alignment(0.60, 0.95),
|
|
|
- colors: [
|
|
|
- const Color(0xFFF95FAC),
|
|
|
- const Color(0xFFFD5E4D),
|
|
|
- const Color(0xFFFD5E4D),
|
|
|
- const Color(0xFFFB8A3C),
|
|
|
- ],
|
|
|
- ),
|
|
|
shape: RoundedRectangleBorder(
|
|
|
- borderRadius: BorderRadius.circular(30.55.r),
|
|
|
+ side: BorderSide(width: 2.w, color: const Color(0xFFFFF6C9)),
|
|
|
+ borderRadius: BorderRadius.circular(30.55),
|
|
|
),
|
|
|
),
|
|
|
- child: Center(
|
|
|
- child: Text(
|
|
|
- StringName.storePayNow,
|
|
|
- style: Styles.getTextStyleWhiteW500(17.sp),
|
|
|
+ child: Container(
|
|
|
+ width: 328,
|
|
|
+ height: 54,
|
|
|
+ decoration: ShapeDecoration(
|
|
|
+ gradient: LinearGradient(
|
|
|
+ begin: Alignment(0.60, -0.39),
|
|
|
+ end: Alignment(0.60, 0.95),
|
|
|
+ colors: [
|
|
|
+ const Color(0xFFF95FAC),
|
|
|
+ const Color(0xFFFD4D99),
|
|
|
+ const Color(0xFFFF3E75),
|
|
|
+ const Color(0xFFFF0F53),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ shape: RoundedRectangleBorder(
|
|
|
+ borderRadius: BorderRadius.circular(30.55),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ child: Center(
|
|
|
+ child: Text(
|
|
|
+ StringName.newDiscountUnlockNow,
|
|
|
+ style: Styles.getTextStyleWhiteW500(17.sp),
|
|
|
+ ),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
),
|
|
|
SizedBox(height: 11.h),
|
|
|
- Row(
|
|
|
- mainAxisAlignment: MainAxisAlignment.center,
|
|
|
- children: [
|
|
|
- Obx(() {
|
|
|
- return GestureDetector(
|
|
|
- behavior: HitTestBehavior.opaque,
|
|
|
- onTap: () {
|
|
|
- controller.isAgree.value = !controller.isAgree.value;
|
|
|
- },
|
|
|
- child:
|
|
|
- controller.isAgree.value
|
|
|
- ? Assets.images.iconStoreAgreePrivacy.image(
|
|
|
- width: 16.w,
|
|
|
- height: 16.w,
|
|
|
- )
|
|
|
- : SizedBox(
|
|
|
- child: Container(
|
|
|
- padding: EdgeInsets.all(1.w),
|
|
|
- width: 16.w,
|
|
|
- height: 16.w,
|
|
|
- child: Container(
|
|
|
- decoration: BoxDecoration(
|
|
|
- shape: BoxShape.circle,
|
|
|
- border: Border.all(
|
|
|
- color: Colors.black.withAlpha(153),
|
|
|
- width: 1.w,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- ),
|
|
|
- );
|
|
|
- }),
|
|
|
- Text.rich(
|
|
|
- TextSpan(
|
|
|
- children: [
|
|
|
- TextSpan(
|
|
|
- text: StringName.textSpanIHaveReadAndAgree,
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.black.withAlpha(153),
|
|
|
- fontSize: 10.sp,
|
|
|
- fontWeight: FontWeight.w400,
|
|
|
- ),
|
|
|
- ),
|
|
|
- ClickTextSpan(
|
|
|
- text: StringName.textSpanPrivacyPolicy,
|
|
|
- url: WebUrl.privacyPolicy,
|
|
|
- ),
|
|
|
-
|
|
|
- TextSpan(
|
|
|
- text: StringName.textSpanAnd,
|
|
|
- style: TextStyle(
|
|
|
- color: Colors.black.withAlpha(153),
|
|
|
- fontSize: 10.sp,
|
|
|
- fontWeight: FontWeight.w400,
|
|
|
- ),
|
|
|
- ),
|
|
|
-
|
|
|
- ClickTextSpan(
|
|
|
- text: StringName.textSpanServiceTerms,
|
|
|
- url: WebUrl.serviceAgreement,
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
- ),
|
|
|
- ],
|
|
|
- ),
|
|
|
+ _buildPrivacyTextSpan(),
|
|
|
],
|
|
|
),
|
|
|
);
|
|
|
@@ -369,42 +318,30 @@ class NewDiscountPage extends BasePage<NewDiscountController> {
|
|
|
Widget _buildGoodsCard() {
|
|
|
return Container(
|
|
|
margin: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
- padding: EdgeInsets.only(
|
|
|
- top: 16.w,
|
|
|
- left: 16.w,
|
|
|
- right: 16.w,
|
|
|
- bottom: 24.w,
|
|
|
- ),
|
|
|
- decoration: BoxDecoration(
|
|
|
- color: Colors.white,
|
|
|
- borderRadius: BorderRadius.only(
|
|
|
- topLeft: Radius.circular(16.r),
|
|
|
- topRight: Radius.circular(16.r),
|
|
|
- ),
|
|
|
- ),
|
|
|
+
|
|
|
child: Column(
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
mainAxisAlignment: MainAxisAlignment.start,
|
|
|
children: [
|
|
|
-
|
|
|
- SizedBox(height: 16.h),
|
|
|
Obx(() {
|
|
|
+ final goodsList = controller.filteredGoodsList;
|
|
|
return Column(
|
|
|
- children:
|
|
|
- controller.filteredGoodsList.map((item) {
|
|
|
- return Obx(() {
|
|
|
- return GestureDetector(
|
|
|
- onTap: () => controller.onGoodsItemClick(item),
|
|
|
- child: _buildGoodsItem(
|
|
|
- item,
|
|
|
- controller.selectedGoodsInfoItem?.id == item.id,
|
|
|
- ),
|
|
|
- );
|
|
|
- });
|
|
|
- }).toList(),
|
|
|
+ children: List.generate(goodsList.length, (index) {
|
|
|
+ final item = goodsList[index];
|
|
|
+ final isSelected =
|
|
|
+ controller.selectedGoodsInfoItem?.id == item.id;
|
|
|
+ return Column(
|
|
|
+ children: [
|
|
|
+ GestureDetector(
|
|
|
+ onTap: () => controller.onGoodsItemClick(item),
|
|
|
+ child: _buildGoodsItem(item, isSelected),
|
|
|
+ ),
|
|
|
+ if (index != goodsList.length - 1) SizedBox(height: 10.w),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ }),
|
|
|
);
|
|
|
}),
|
|
|
- _buildPayWayCard(),
|
|
|
],
|
|
|
),
|
|
|
);
|
|
|
@@ -414,6 +351,7 @@ class NewDiscountPage extends BasePage<NewDiscountController> {
|
|
|
return GestureDetector(
|
|
|
onTap: () => controller.clickPayWaySwitch(),
|
|
|
child: Container(
|
|
|
+ margin: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
height: 36.h,
|
|
|
padding: EdgeInsets.symmetric(horizontal: 10.w),
|
|
|
decoration: ShapeDecoration(
|
|
|
@@ -465,170 +403,308 @@ class NewDiscountPage extends BasePage<NewDiscountController> {
|
|
|
|
|
|
Widget _buildGoodsItem(item, bool isSelected) {
|
|
|
return Container(
|
|
|
- margin: EdgeInsets.only(bottom: 8.h),
|
|
|
-
|
|
|
+ height: 70.w,
|
|
|
+ width: 328.w,
|
|
|
+ padding: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
+ decoration:
|
|
|
+ isSelected
|
|
|
+ ? BoxDecoration(
|
|
|
+ borderRadius: BorderRadius.circular(16.w),
|
|
|
+ image: DecorationImage(
|
|
|
+ image: Assets.images.bgNewDiscountItemSelect.provider(),
|
|
|
+ fit: BoxFit.fill,
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ : BoxDecoration(
|
|
|
+ borderRadius: BorderRadius.circular(16.w),
|
|
|
+ image: DecorationImage(
|
|
|
+ image: Assets.images.bgNewDiscountItemUnselect.provider(),
|
|
|
+ fit: BoxFit.fill,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ child: Row(
|
|
|
+ children: [
|
|
|
+ Text(
|
|
|
+ "¥",
|
|
|
+ style: TextStyle(
|
|
|
+ color:
|
|
|
+ isSelected
|
|
|
+ ? const Color(0xFFFF684E)
|
|
|
+ : Colors.black.withAlpha(204),
|
|
|
+ fontSize: 16.sp,
|
|
|
+ fontWeight: FontWeight.w700,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ Text(
|
|
|
+ '${item.amountText}',
|
|
|
+ textAlign: TextAlign.center,
|
|
|
+ style: TextStyle(
|
|
|
+ color:
|
|
|
+ isSelected
|
|
|
+ ? const Color(0xFFFF684E)
|
|
|
+ : Colors.black.withAlpha(204),
|
|
|
+ fontSize: 29.sp,
|
|
|
+ fontWeight: FontWeight.w700,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(width: 9.w),
|
|
|
+ Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ Row(
|
|
|
+ children: [
|
|
|
+ Text(
|
|
|
+ item.name,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(204),
|
|
|
+ fontSize: 14.sp,
|
|
|
+ fontWeight: FontWeight.w500,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
|
|
|
- decoration: ShapeDecoration(
|
|
|
- color: Colors.white,
|
|
|
- shape: RoundedRectangleBorder(
|
|
|
- side: BorderSide(
|
|
|
- width: 2.w,
|
|
|
- color: Colors.black.withAlpha( 26),
|
|
|
+ SizedBox(width: 4.5.w),
|
|
|
+ if (item.mostDesc?.isNotEmpty == true)
|
|
|
+ Container(
|
|
|
+ padding: EdgeInsets.symmetric(
|
|
|
+ horizontal: 4.w,
|
|
|
+ vertical: 2.w,
|
|
|
+ ),
|
|
|
+ margin: EdgeInsets.only(bottom: 4.w),
|
|
|
+ decoration: ShapeDecoration(
|
|
|
+ gradient: LinearGradient(
|
|
|
+ begin: Alignment(0.00, 0.50),
|
|
|
+ end: Alignment(1.00, 0.50),
|
|
|
+ colors: [
|
|
|
+ const Color(0xFFFF684E),
|
|
|
+ const Color(0xFFFF4F9A),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ shape: RoundedRectangleBorder(
|
|
|
+ borderRadius: BorderRadius.only(
|
|
|
+ topLeft: Radius.circular(10.50),
|
|
|
+ topRight: Radius.circular(10.50),
|
|
|
+ bottomRight: Radius.circular(10.50),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ child: Text(
|
|
|
+ item.mostDesc!,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 12.sp,
|
|
|
+ fontWeight: FontWeight.w500,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ Text(
|
|
|
+ item.priceDesc,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(153),
|
|
|
+ fontSize: 12.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
),
|
|
|
- borderRadius: BorderRadius.circular(16),
|
|
|
- ),
|
|
|
+ Spacer(),
|
|
|
+ isSelected
|
|
|
+ ? Assets.images.iconCustomCharacterAddDialogSelect.image(
|
|
|
+ width: 20.w,
|
|
|
+ height: 20.w,
|
|
|
+ fit: BoxFit.contain,
|
|
|
+ )
|
|
|
+ : Container(
|
|
|
+ width: 20.w,
|
|
|
+ height: 20.w,
|
|
|
+ decoration: ShapeDecoration(
|
|
|
+ color: Colors.white,
|
|
|
+ shape: OvalBorder(
|
|
|
+ side: BorderSide(
|
|
|
+ width: 2.w,
|
|
|
+ color: const Color(0xFFE6E6E6),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
),
|
|
|
- child: Row(
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ _buildSelectedDesc() {
|
|
|
+ return Obx(() {
|
|
|
+ return Container(
|
|
|
+ margin: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
+ child: Row(
|
|
|
+ children: [
|
|
|
+ Text(
|
|
|
+ controller.selectedGoodsInfoItem?.selectDesc ?? "",
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(102),
|
|
|
+ fontSize: 12.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _buildMemberCard() {
|
|
|
+ return Container(
|
|
|
+ margin: EdgeInsets.symmetric(horizontal: 16.w),
|
|
|
+ child: Column(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.start,
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
children: [
|
|
|
+ Assets.images.iconNewDiscountMembershipCardTitle.image(
|
|
|
+ width: 79.w,
|
|
|
+ height: 24.w,
|
|
|
+ ),
|
|
|
+ SizedBox(height: 6.w),
|
|
|
Text(
|
|
|
- '¥${item.amountText}',
|
|
|
- textAlign: TextAlign.center,
|
|
|
- style:
|
|
|
- isSelected
|
|
|
- ? Styles.getTextStyleFF7F14W500(12.sp)
|
|
|
- : Styles.getTextStyleWhiteW500(12.sp),
|
|
|
- )
|
|
|
- // Container(
|
|
|
- // width: 212.w,
|
|
|
- // height: 70.h,
|
|
|
- // decoration: ShapeDecoration(
|
|
|
- // gradient:
|
|
|
- // isSelected
|
|
|
- // ? LinearGradient(
|
|
|
- // begin: Alignment(-0.06, 0.50),
|
|
|
- // end: Alignment(1.14, 0.50),
|
|
|
- // colors: [
|
|
|
- // const Color(0xFFFFF895),
|
|
|
- // const Color(0xFFFFE941),
|
|
|
- // ],
|
|
|
- // )
|
|
|
- // : null,
|
|
|
- // color: isSelected ? null : const Color(0xFFFFFDEE),
|
|
|
- // shape: RoundedRectangleBorder(
|
|
|
- // side: BorderSide(width: 1, color: const Color(0xFFFEE86B)),
|
|
|
- // borderRadius: BorderRadius.circular(isSelected ? 8 : 10.r),
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // child: Stack(
|
|
|
- // children: [
|
|
|
- // if (isSelected)
|
|
|
- // IgnorePointer(
|
|
|
- // child: Assets.images.bgStoreSelectedItem.image(
|
|
|
- // width: 212.w,
|
|
|
- // height: 70.h,
|
|
|
- // fit: BoxFit.fill,
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // Padding(
|
|
|
- // padding: EdgeInsets.only(left: 16.w),
|
|
|
- // child: Column(
|
|
|
- // crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
- // mainAxisAlignment: MainAxisAlignment.center,
|
|
|
- // children: [
|
|
|
- // Row(
|
|
|
- // children: [
|
|
|
- // RichText(
|
|
|
- // text: TextSpan(
|
|
|
- // children: [
|
|
|
- // TextSpan(
|
|
|
- // text: '¥',
|
|
|
- // style: Styles.getTextStyleFF663300W700(14.sp),
|
|
|
- // ),
|
|
|
- // TextSpan(
|
|
|
- // text: item.priceDescNumber,
|
|
|
- // style: Styles.getTextStyleFF663300W700(18.sp),
|
|
|
- // ),
|
|
|
- // TextSpan(
|
|
|
- // text: item.priceDescUnit,
|
|
|
- // style: Styles.getTextStyleFF663300W400(13.sp),
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // if (item.mostDesc?.isNotEmpty == true)
|
|
|
- // Container(
|
|
|
- // padding: EdgeInsets.only(
|
|
|
- // left: 16.w,
|
|
|
- // top: 2.h,
|
|
|
- // bottom: 2.h,
|
|
|
- // ),
|
|
|
- // decoration: BoxDecoration(
|
|
|
- // image: DecorationImage(
|
|
|
- // image: Assets.images.iconStoreMost.provider(),
|
|
|
- // fit: BoxFit.cover,
|
|
|
- // alignment: Alignment.bottomLeft,
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // child: Text(
|
|
|
- // item.mostDesc!,
|
|
|
- // style: TextStyle(
|
|
|
- // color: Colors.white,
|
|
|
- // fontSize: 12.sp,
|
|
|
- // fontWeight: FontWeight.w500,
|
|
|
- // letterSpacing: -0.60,
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // Text(
|
|
|
- // item.description!,
|
|
|
- // style: Styles.getTextStyle99673300W400(12.sp),
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // // 右侧
|
|
|
- // Expanded(
|
|
|
- // child: Column(
|
|
|
- // mainAxisAlignment: MainAxisAlignment.center,
|
|
|
- // crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
- // children: [
|
|
|
- // Text(
|
|
|
- // item.name,
|
|
|
- // style:
|
|
|
- // isSelected
|
|
|
- // ? Styles.getTextStyleFFECBBW500(15.sp)
|
|
|
- // : Styles.getTextStyleFF663300W500(15.sp),
|
|
|
- // ),
|
|
|
- // Container(
|
|
|
- // padding: EdgeInsets.symmetric(horizontal: 8.w),
|
|
|
- // decoration: ShapeDecoration(
|
|
|
- // color: isSelected ? const Color(0xFFFFECBB) : null,
|
|
|
- // gradient:
|
|
|
- // isSelected
|
|
|
- // ? null
|
|
|
- // : LinearGradient(
|
|
|
- // begin: Alignment(0.77, -0.00),
|
|
|
- // end: Alignment(0.77, 1.00),
|
|
|
- // colors: [
|
|
|
- // const Color(0xFFFF9416),
|
|
|
- // const Color(0xFFFF7813),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // shape: RoundedRectangleBorder(
|
|
|
- // borderRadius: BorderRadius.circular(
|
|
|
- // isSelected ? 17.r : 10.r,
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // child: Text(
|
|
|
- // '¥${item.amountText}',
|
|
|
- // textAlign: TextAlign.center,
|
|
|
- // style:
|
|
|
- // isSelected
|
|
|
- // ? Styles.getTextStyleFF7F14W500(12.sp)
|
|
|
- // : Styles.getTextStyleWhiteW500(12.sp),
|
|
|
- // ),
|
|
|
- // ),
|
|
|
- // ],
|
|
|
- // ),
|
|
|
- // ),
|
|
|
+ StringName.newDiscountMemberCardDesc,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withValues(alpha: 87),
|
|
|
+ fontSize: 11.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(height: 8.w),
|
|
|
+ _buildMemberCardItem(),
|
|
|
],
|
|
|
),
|
|
|
);
|
|
|
}
|
|
|
+
|
|
|
+ // 卡片权益
|
|
|
+ _buildMemberCardItem() {
|
|
|
+ return SizedBox(
|
|
|
+ height: 80.w,
|
|
|
+ child: AutoScrollListView(
|
|
|
+ scrollDirection: Axis.horizontal,
|
|
|
+ itemBuilder: (context, index) {
|
|
|
+ final item = controller.memberCardList[index];
|
|
|
+ return Container(
|
|
|
+ margin: EdgeInsets.only(right: 8.w),
|
|
|
+ width: 140.w,
|
|
|
+ height: 65.w,
|
|
|
+ decoration: ShapeDecoration(
|
|
|
+ gradient: item.gradient,
|
|
|
+ shape: RoundedRectangleBorder(
|
|
|
+ side: BorderSide(width: 1.w, color: Colors.black.withAlpha(8)),
|
|
|
+ borderRadius: BorderRadius.circular(20.r),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ item.imageUrl.image(width: 28.w, height: 27.62.w),
|
|
|
+ SizedBox(width: 8.w),
|
|
|
+ Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ Text(
|
|
|
+ item.title,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(204),
|
|
|
+ fontSize: 12.sp,
|
|
|
+ fontWeight: FontWeight.w700,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ SizedBox(height: 6.w),
|
|
|
+ Text(
|
|
|
+ item.desc,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(128),
|
|
|
+ fontSize: 10.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ itemCount: controller.memberCardList.length,
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _buildPrivacyTextSpan() {
|
|
|
+ return Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.center,
|
|
|
+ children: [
|
|
|
+ Obx(() {
|
|
|
+ return GestureDetector(
|
|
|
+ behavior: HitTestBehavior.opaque,
|
|
|
+ onTap: () {
|
|
|
+ controller.isAgree.value = !controller.isAgree.value;
|
|
|
+ },
|
|
|
+ child:
|
|
|
+ controller.isAgree.value
|
|
|
+ ? Assets.images.iconStoreAgreePrivacy.image(
|
|
|
+ width: 16.w,
|
|
|
+ height: 16.w,
|
|
|
+ )
|
|
|
+ : SizedBox(
|
|
|
+ child: Container(
|
|
|
+ padding: EdgeInsets.all(1.w),
|
|
|
+ width: 16.w,
|
|
|
+ height: 16.w,
|
|
|
+ child: Container(
|
|
|
+ decoration: BoxDecoration(
|
|
|
+ shape: BoxShape.circle,
|
|
|
+ border: Border.all(
|
|
|
+ color: Colors.black.withAlpha(153),
|
|
|
+ width: 1.w,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }),
|
|
|
+ Text.rich(
|
|
|
+ TextSpan(
|
|
|
+ children: [
|
|
|
+ TextSpan(
|
|
|
+ text: StringName.textSpanIHaveReadAndAgree,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(153),
|
|
|
+ fontSize: 10.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ClickTextSpan(
|
|
|
+ text: StringName.textSpanPrivacyPolicy,
|
|
|
+ url: WebUrl.privacyPolicy,
|
|
|
+ ),
|
|
|
+
|
|
|
+ TextSpan(
|
|
|
+ text: StringName.textSpanAnd,
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.black.withAlpha(153),
|
|
|
+ fontSize: 10.sp,
|
|
|
+ fontWeight: FontWeight.w400,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+
|
|
|
+ ClickTextSpan(
|
|
|
+ text: StringName.textSpanServiceTerms,
|
|
|
+ url: WebUrl.serviceAgreement,
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|