upload_step_card.dart 2.1 KB

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