import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/common/widgets/ow_image_widget.dart'; import '../../../models/course_section_entity.dart'; import '../../../models/course_unit_entity.dart'; import '../courese_module_model.dart'; ///环节item布局 class SectionItem extends StatelessWidget { const SectionItem({super.key, this.lessons, this.courseModuleId}); final String? courseModuleId; final CourseSectionEntity? lessons; @override Widget build(BuildContext context) { return Padding( padding: EdgeInsets.symmetric(horizontal: 12.w,vertical: 24.h), child: Stack( children: [ _normalItem(), _lockWidget(), ], ) ); } Widget _normalItem() { return Container( width: 165.w, padding: EdgeInsets.symmetric(horizontal: 16.w,vertical: 24.h), decoration: BoxDecoration( image: DecorationImage( image: AssetImage('gendubeij'.assetPng), fit: BoxFit.fill ), ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: Container( decoration: BoxDecoration( border: Border.all( width: 2, color: const Color(0xFF140C10), ), borderRadius: BorderRadius.circular(6) ), child: OwImageWidget( name: lessons?.coverUrl??'', fit: BoxFit.fitHeight, ), ) ), 24.verticalSpace, Container( decoration: BoxDecoration( border: Border.all( width: 2, color: const Color(0xFF140C10), ), color: CourseModuleModel(courseModuleId ?? 'Phase-1').color, borderRadius: BorderRadius.circular(6) ), padding: EdgeInsets.symmetric(horizontal: 10.w), child: Text( lessons?.name??'', maxLines: 1, style: TextStyle( fontSize: 25.sp, color: const Color(0xFF333333) ), ), ) ], ), ); } ///锁定状态下蒙层视图 Widget _lockWidget() { return Visibility( visible: lessons?.lock ?? false, child: Container( width: 165.w, decoration: BoxDecoration( image: DecorationImage( image: AssetImage( 'gendubeij_mengban'.assetPng ), fit: BoxFit.fill ) ), alignment: Alignment.center, // child: Image.asset( // 'iv_lock'.assetPng, // height: 36.h, // width: 41.w, // ), ), ); } }