import 'package:electronic_assistant/base/base_page.dart'; import 'package:electronic_assistant/router/app_pages.dart'; import 'package:electronic_assistant/utils/expand.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:get/get_core/src/get_main.dart'; import '../../../data/bean/template_bean.dart'; import '../../../resource/assets.gen.dart'; import '../../../resource/colors.gen.dart'; import '../../../resource/string.gen.dart'; import '../../../utils/common_style.dart'; import 'controller.dart'; class TemplateListPage extends BasePage { const TemplateListPage({super.key}); static void start() { Get.toNamed(RoutePath.templateList); } @override bool immersive() { return true; } @override Widget buildBody(BuildContext context) { return Scaffold( backgroundColor: '#F6F6F6'.color, appBar: _buildAppBar(), body: Column( children: [Expanded(child: _buildTemplateList()), _buildTemplateBtn()], ), ); } Widget _buildTemplateBtn() { return GestureDetector( onTap: () { controller.onAddTemplate(); }, child: Center( child: Container( margin: EdgeInsets.only(bottom: 16.w), decoration: getCommonDecoration(8.w), width: 328.w, height: 48.w, child: Center( child: Text( StringName.talkAddTemplate.tr, style: TextStyle(fontSize: 16.sp, color: ColorName.white), ), ), ), ), ); } AppBar _buildAppBar() { return AppBar( scrolledUnderElevation: 0, systemOverlayStyle: SystemUiOverlayStyle.dark, backgroundColor: Colors.transparent, title: Text( StringName.templateManageTitle.tr, style: TextStyle(fontSize: 17.sp, color: ColorName.primaryTextColor), ), centerTitle: true, leading: IconButton( onPressed: () { controller.onBack(); }, icon: SizedBox( width: 24.w, height: 24.w, child: Assets.images.iconBack.image())), ); } Widget _buildTemplateList() { return Obx(() { return ListView.builder( padding: EdgeInsets.only(top: 12.w), itemCount: controller.templateList.length, itemBuilder: (context, index) { return _buildTemplateItem(controller.templateList[index]); }, ); }); } Widget _buildTemplateItem(TemplateBean templateBean) { return Container( decoration: BoxDecoration( color: ColorName.white, borderRadius: BorderRadius.circular(8.w)), padding: EdgeInsets.only(left: 16.w, right: 12.w), margin: EdgeInsets.only(bottom: 8.h, left: 12.w, right: 12.w), child: Row( children: [ Padding( padding: EdgeInsets.symmetric(vertical: 20.w), child: Text(templateBean.name ?? '', style: TextStyle( fontSize: 15.sp, color: ColorName.primaryTextColor, height: 1)), ), const Spacer(), Visibility( visible: !templateBean.isDefaultTemp, child: Assets.images.iconTemplateMoreOperation .image(width: 24.w, height: 24.w)), ], ), ); } }