section_item.dart 2.97 KB
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,
        // ),
      ),
    );
  }
}