upload_step_card.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter_screenutil/flutter_screenutil.dart';
  3. import '../../../../resource/assets.gen.dart';
  4. import '../../../../resource/colors.gen.dart';
  5. import '../../intimacy_analyse_upload/widget/upload_add_widget.dart';
  6. import '../../intimacy_analyse_upload/widget/upload_nine_grid.dart';
  7. import '../step_card.dart';
  8. /// 上传步骤卡片
  9. class UploadStepCard extends StatelessWidget {
  10. /// 顶部标题区域的组件
  11. final Widget? topTitleWidget;
  12. /// 底部的子组件,可以没有
  13. final Widget? bottomChild;
  14. /// 点击上传按钮的回调
  15. final OnClickAddCallback? onClickAddCallback;
  16. const UploadStepCard({
  17. super.key,
  18. this.topTitleWidget,
  19. this.bottomChild,
  20. this.onClickAddCallback,
  21. });
  22. @override
  23. Widget build(BuildContext context) {
  24. return StepCard(
  25. // 背景图片
  26. bgImageProvider: Assets.images.bgIntimacyAnalyseUploadCard.provider(),
  27. // 顶部的标题
  28. topTitleWidget: topTitleWidget,
  29. // 顶部的图标
  30. topIconWidget: Assets.images.iconIntimacyAnalyseUploadTop.image(
  31. height: 63.h,
  32. width: 103.w,
  33. ),
  34. contentWidget: Column(
  35. children: [
  36. SizedBox(height: 14.h),
  37. // 图片九宫格
  38. Container(
  39. margin: EdgeInsets.only(left: 12.w, right: 12.w),
  40. padding: EdgeInsets.only(
  41. left: 12.w,
  42. top: 12.h,
  43. right: 12.w,
  44. bottom: 12.h,
  45. ),
  46. decoration: BoxDecoration(
  47. color: ColorName.white,
  48. borderRadius: BorderRadius.circular(16.r),
  49. ),
  50. // 图片九宫格
  51. child: UploadNineGrid(
  52. mode: Mode.edit,
  53. imageSrcList: ["", "", "", "", "", "", ""],
  54. maxCount: 9,
  55. spacing: 8.0,
  56. onClickAddCallback: onClickAddCallback,
  57. ),
  58. ),
  59. SizedBox(height: 10.h),
  60. // 当前的亲密关系
  61. bottomChild ?? SizedBox(),
  62. ],
  63. ),
  64. );
  65. }
  66. }