From cd660a102b1a102d4a73b8a6c11cfc5341cfb514 Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Fri, 24 Oct 2025 18:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=9A=E8=AE=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/services/db/sqflite_api.dart | 19 +++ .../views/template/template_details_view.dart | 112 ++++++++++++++++++ .../views/template/template_edit_view.dart | 6 +- .../meeting/views/template/template_view.dart | 18 +++ 4 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 lib/modules/meeting/views/template/template_details_view.dart diff --git a/lib/data/services/db/sqflite_api.dart b/lib/data/services/db/sqflite_api.dart index eb1ea751f..a400298fb 100644 --- a/lib/data/services/db/sqflite_api.dart +++ b/lib/data/services/db/sqflite_api.dart @@ -313,4 +313,23 @@ class SqfliteApi { whereArgs: [id], ); } + + // 插入商务会议助手模版 + static Future insertMeetingTemplate(Map meeting) async { + final db = await DatabaseHelper().database; + await db.insert('meetingtemplate', meeting); + } + + // 修改商务会议助手模版 + static Future editMeetingTemplate(id, Map meeting) async { + final db = await DatabaseHelper().database; + await db + .update('meetingtemplate', meeting, where: 'id = ?', whereArgs: [id]); + } + + // 删除商务会议助手模版 + static Future deleteMeetingTemplate(id) async { + final db = await DatabaseHelper().database; + await db.delete('meetingtemplate', where: 'id = ?', whereArgs: [id]); + } } diff --git a/lib/modules/meeting/views/template/template_details_view.dart b/lib/modules/meeting/views/template/template_details_view.dart new file mode 100644 index 000000000..ca424f998 --- /dev/null +++ b/lib/modules/meeting/views/template/template_details_view.dart @@ -0,0 +1,112 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; + +class TemplateDetailsView extends StatefulWidget { + const TemplateDetailsView({super.key}); + + @override + State createState() => _TemplateDetailsViewState(); +} + +class _TemplateDetailsViewState extends State { + @override + Widget build(BuildContext context) { + final isDarkMode = Theme.of(context).brightness == Brightness.dark; + + return Scaffold( + backgroundColor: isDarkMode ? Colors.black : Colors.grey[50], + appBar: _buildAppBar(isDarkMode), + body: _buildBody(isDarkMode), + ); + } + + // 构建应用栏 + PreferredSizeWidget _buildAppBar(bool isDarkMode) { + return AppBar( + backgroundColor: isDarkMode ? Colors.black : Colors.white, + elevation: 0.5, + leading: IconButton( + icon: Icon( + Icons.arrow_back_ios, + color: isDarkMode ? Colors.white : Colors.black, + size: 20.sp, + ), + onPressed: () => Get.back(), + ), + title: Text( + '模版详情', + style: TextStyle( + fontSize: 17.sp, + fontWeight: FontWeight.w600, + color: isDarkMode ? Colors.white : Colors.black, + ), + ), + centerTitle: true, + ); + } + + // 构建主体内容 + Widget _buildBody(bool isDarkMode) { + return Column( + children: [ + Expanded( + child: ListView( + padding: EdgeInsets.symmetric(horizontal: 12.w), + children: [], + ), + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 12.w, vertical: 20.w), + child: Row( + children: [ + Expanded( + child: GestureDetector( + onTap: () {}, + child: Container( + height: 48.w, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12.r), + border: Border.all( + color: Colors.black, + ), + ), + child: Text( + '修改', + style: TextStyle( + fontSize: 16.sp, + color: Colors.black, + ), + ), + ), + ), + ), + 15.horizontalSpace, + Expanded( + child: GestureDetector( + onTap: () {}, + child: Container( + height: 48.w, + alignment: Alignment.center, + decoration: BoxDecoration( + color: Colors.red, + borderRadius: BorderRadius.circular(12.r), + ), + child: Text( + '删除', + style: TextStyle( + fontSize: 16.sp, + color: Colors.white, + ), + ), + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/modules/meeting/views/template/template_edit_view.dart b/lib/modules/meeting/views/template/template_edit_view.dart index 1a1179f3f..79426d117 100644 --- a/lib/modules/meeting/views/template/template_edit_view.dart +++ b/lib/modules/meeting/views/template/template_edit_view.dart @@ -3,6 +3,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import '../../../../data/services/db/sqflite_api.dart'; import '../../../../data/services/network/api.dart'; class TemplateEditView extends StatefulWidget { @@ -214,7 +215,10 @@ class _TemplateEditViewState extends State { }, }; var response = await Api.addEchomeetTemplates(data); - if (response != null) {} + if (response != null) { + print('----$response--------'); + // await SqfliteApi.insertMeetingTemplate(data['template']); + } EasyLoading.dismiss(); } } diff --git a/lib/modules/meeting/views/template/template_view.dart b/lib/modules/meeting/views/template/template_view.dart index 457d370e4..9e7a2926b 100644 --- a/lib/modules/meeting/views/template/template_view.dart +++ b/lib/modules/meeting/views/template/template_view.dart @@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'template_all_view.dart'; +import 'template_details_view.dart'; import 'template_edit_view.dart'; class TemplateView extends StatefulWidget { @@ -304,6 +305,23 @@ class _TemplateViewState extends State { ), ), ), + Positioned( + top: 0, + right: 0, + child: GestureDetector( + onTap: () { + Get.to(() => const TemplateDetailsView()); + }, + child: Padding( + padding: EdgeInsets.all(10.w), + child: Icon( + Icons.fullscreen, + color: Colors.grey[600], + size: 26.w, + ), + ), + ), + ), if (widget.lastTemplateId == template['id']) Positioned( top: 0,