|
@@ -6,9 +6,12 @@ import 'package:flutter/material.dart';
|
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter/services.dart';
|
|
|
import 'package:flutter/src/widgets/framework.dart';
|
|
import 'package:flutter/src/widgets/framework.dart';
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
|
|
+import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get.dart';
|
|
|
import 'package:get/get_core/src/get_main.dart';
|
|
import 'package:get/get_core/src/get_main.dart';
|
|
|
import '../../../data/bean/template_bean.dart';
|
|
import '../../../data/bean/template_bean.dart';
|
|
|
|
|
+import '../../../popup/common_popup.dart';
|
|
|
|
|
+import '../../../popup/template_utils.dart';
|
|
|
import '../../../resource/assets.gen.dart';
|
|
import '../../../resource/assets.gen.dart';
|
|
|
import '../../../resource/colors.gen.dart';
|
|
import '../../../resource/colors.gen.dart';
|
|
|
import '../../../resource/string.gen.dart';
|
|
import '../../../resource/string.gen.dart';
|
|
@@ -18,8 +21,8 @@ import 'controller.dart';
|
|
|
class TemplateListPage extends BasePage<TemplateListController> {
|
|
class TemplateListPage extends BasePage<TemplateListController> {
|
|
|
const TemplateListPage({super.key});
|
|
const TemplateListPage({super.key});
|
|
|
|
|
|
|
|
- static void start() {
|
|
|
|
|
- Get.toNamed(RoutePath.templateList);
|
|
|
|
|
|
|
+ static Future<dynamic> start() async {
|
|
|
|
|
+ return Get.toNamed(RoutePath.templateList);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
@@ -29,11 +32,20 @@ class TemplateListPage extends BasePage<TemplateListController> {
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
Widget buildBody(BuildContext context) {
|
|
Widget buildBody(BuildContext context) {
|
|
|
- return Scaffold(
|
|
|
|
|
- backgroundColor: '#F6F6F6'.color,
|
|
|
|
|
- appBar: _buildAppBar(),
|
|
|
|
|
- body: Column(
|
|
|
|
|
- children: [Expanded(child: _buildTemplateList()), _buildTemplateBtn()],
|
|
|
|
|
|
|
+ return WillPopScope(
|
|
|
|
|
+ onWillPop: () async {
|
|
|
|
|
+ controller.onBack();
|
|
|
|
|
+ return false;
|
|
|
|
|
+ },
|
|
|
|
|
+ child: Scaffold(
|
|
|
|
|
+ backgroundColor: '#F6F6F6'.color,
|
|
|
|
|
+ appBar: _buildAppBar(),
|
|
|
|
|
+ body: Column(
|
|
|
|
|
+ children: [
|
|
|
|
|
+ Expanded(child: _buildTemplateList()),
|
|
|
|
|
+ _buildTemplateBtn()
|
|
|
|
|
+ ],
|
|
|
|
|
+ ),
|
|
|
),
|
|
),
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
@@ -116,11 +128,35 @@ class TemplateListPage extends BasePage<TemplateListController> {
|
|
|
const Spacer(),
|
|
const Spacer(),
|
|
|
Visibility(
|
|
Visibility(
|
|
|
visible: !templateBean.isDefaultTemp,
|
|
visible: !templateBean.isDefaultTemp,
|
|
|
- child: Assets.images.iconTemplateMoreOperation
|
|
|
|
|
- .image(width: 24.w, height: 24.w)),
|
|
|
|
|
|
|
+ child: GestureDetector(
|
|
|
|
|
+ onTapUp: (details) {
|
|
|
|
|
+ showPressTouchPopup(
|
|
|
|
|
+ details.globalPosition + Offset(-40.w, 20.w),
|
|
|
|
|
+ Alignment.bottomLeft,
|
|
|
|
|
+ _buildPopupView(templateBean, 'templateMorePopup'),
|
|
|
|
|
+ tag: 'templateMorePopup');
|
|
|
|
|
+ },
|
|
|
|
|
+ child: Assets.images.iconTemplateMoreOperation
|
|
|
|
|
+ .image(width: 24.w, height: 24.w),
|
|
|
|
|
+ )),
|
|
|
],
|
|
],
|
|
|
),
|
|
),
|
|
|
),
|
|
),
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ List<Widget> _buildPopupView(TemplateBean item, String tag) {
|
|
|
|
|
+ return [
|
|
|
|
|
+ createNormalPopupItem(StringName.agendaDetailPopupUpdate.tr,
|
|
|
|
|
+ onItemClick: () {
|
|
|
|
|
+ SmartDialog.dismiss(tag: tag);
|
|
|
|
|
+ controller.templateEdit(item);
|
|
|
|
|
+ }),
|
|
|
|
|
+ createPopupDivider(),
|
|
|
|
|
+ createDeletePopupItem(() {
|
|
|
|
|
+ SmartDialog.dismiss(tag: tag);
|
|
|
|
|
+ controller.onDeleteTemplate(item);
|
|
|
|
|
+ }),
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|