From 6c0512fab114b145ff2464bd272200c5594755b0 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Wed, 18 Mar 2026 18:24:58 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E4=BC=9A=E8=AE=AE):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=A8=A1=E6=9D=BFTID=E6=94=AF=E6=8C=81=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96UI=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在会议任务提交和刷新时新增tid参数传递 - 数据库表结构增加tid字段存储模板ID - 调整生成底部弹窗的UI条件渲染逻辑 - 修改数据库文件命名以避免冲突 --- lib/data/services/db/database_helper.dart | 3 +- lib/data/services/db/sqflite_api.dart | 2 + .../meeting/meeting_task_service.dart | 10 ++- .../meeting/meeting_upload_service.dart | 1 + .../meeting_details_controller.dart | 6 +- .../bottomSheet/generate_bottom_sheet.dart | 88 ++++++++++--------- 6 files changed, 65 insertions(+), 45 deletions(-) diff --git a/lib/data/services/db/database_helper.dart b/lib/data/services/db/database_helper.dart index 8c3945a7a..e0c176aa1 100644 --- a/lib/data/services/db/database_helper.dart +++ b/lib/data/services/db/database_helper.dart @@ -27,7 +27,7 @@ class DatabaseHelper { } String path = join( await getDatabasesPath(), - _userId.isNotEmpty ? '${_userId}database.db' : 'database.db', + _userId.isNotEmpty ? '${_userId}database1.db' : 'database1.db', ); return await openDatabase(path, version: 1, onCreate: _createDB); } @@ -102,6 +102,7 @@ class DatabaseHelper { batch.execute(''' CREATE TABLE IF NOT EXISTS meetingtemplate ( id INTEGER PRIMARY KEY, + tid TEXT, categoryid INTEGER, name TEXT, icon TEXT, diff --git a/lib/data/services/db/sqflite_api.dart b/lib/data/services/db/sqflite_api.dart index d2cea8855..972245474 100644 --- a/lib/data/services/db/sqflite_api.dart +++ b/lib/data/services/db/sqflite_api.dart @@ -254,6 +254,7 @@ class SqfliteApi { ); Map template = { "id": item['id'], + 'tid': item['tid'], 'name': item['title'], 'icon': item['icon'], 'tag': item['tags'] ?? '', @@ -297,6 +298,7 @@ class SqfliteApi { Map template = item['templates'][j]; await txn.insert('meetingtemplate', { "id": template['id'], + 'tid': template['tid'], 'categoryid': categoryId, 'name': template['name'], 'icon': template['icon'], diff --git a/lib/data/services/meeting/meeting_task_service.dart b/lib/data/services/meeting/meeting_task_service.dart index 13ad8a1e8..971a85c5f 100644 --- a/lib/data/services/meeting/meeting_task_service.dart +++ b/lib/data/services/meeting/meeting_task_service.dart @@ -60,6 +60,7 @@ class MeetingTaskService extends GetxService { String tolanguage, bool isdistinguishspeaker, int templateid, + String tid, ) async { if (audiourl.isEmpty) { Map uploadData = _uploadService.uploadList.firstWhere( @@ -73,6 +74,7 @@ class MeetingTaskService extends GetxService { uploadData['tolanguage'] = tolanguage; uploadData['isdistinguishspeaker'] = isdistinguishspeaker; uploadData['templateid'] = templateid; + uploadData['tid'] = tid; } else { await submitTask( id, @@ -80,6 +82,7 @@ class MeetingTaskService extends GetxService { tolanguage, isdistinguishspeaker, templateid, + tid, ); } } @@ -90,6 +93,7 @@ class MeetingTaskService extends GetxService { tolanguage, isdistinguishspeaker, templateid, + tid, ); } } @@ -100,6 +104,7 @@ class MeetingTaskService extends GetxService { String tolanguage, bool isdistinguishspeaker, int templateid, + String tid, ) async { await Api.startTaskEchomeet({ 'id': id, @@ -107,6 +112,7 @@ class MeetingTaskService extends GetxService { 'tolanguage': tolanguage, 'isdistinguishspeaker': isdistinguishspeaker, 'templateid': templateid, + 'tid': tid, }); final seconds = await _getMeetingSeconds(id); _decrementMeetingIntegral(cost: seconds); @@ -122,11 +128,13 @@ class MeetingTaskService extends GetxService { _executeTask(); } - Future refreshTask(int id, int templateid) async { + Future refreshTask(int id, int templateid, String tid, String tolanguage) async { tasktype.value = 3; await Api.refreshTaskEchomeet({ 'id': id, 'templateid': templateid, + 'tid': tid, + 'tolanguage': tolanguage, }); _taskList.add({ 'id': id, diff --git a/lib/data/services/meeting/meeting_upload_service.dart b/lib/data/services/meeting/meeting_upload_service.dart index 2f8329cdb..b3f3f6f6c 100644 --- a/lib/data/services/meeting/meeting_upload_service.dart +++ b/lib/data/services/meeting/meeting_upload_service.dart @@ -147,6 +147,7 @@ class MeetingUploadService extends GetxService { element['tolanguage'], element['isdistinguishspeaker'], element['templateid'], + element['tid'] ?? '', ); } element['audiourl'] = audiourl; diff --git a/lib/modules/meeting/controllers/meeting_details_controller.dart b/lib/modules/meeting/controllers/meeting_details_controller.dart index 92be8644e..d6903030b 100644 --- a/lib/modules/meeting/controllers/meeting_details_controller.dart +++ b/lib/modules/meeting/controllers/meeting_details_controller.dart @@ -396,6 +396,7 @@ class MeetingDetailsController extends GetxController String tolanguage, bool isdistinguishspeaker, int templateid, + String tid, ) async { EasyLoading.show(); _everType = 2; @@ -407,16 +408,17 @@ class MeetingDetailsController extends GetxController tolanguage, isdistinguishspeaker, templateid, + tid, ); meetingDetails.value.tasktype = 1; meetingDetails.refresh(); EasyLoading.dismiss(); } - void refreshSummary(int templateid) async { + void refreshSummary(int templateid, String tid, String tolanguage) async { EasyLoading.show(); _everType = 4; - await _meetingTaskService.refreshTask(id, templateid); + await _meetingTaskService.refreshTask(id, templateid, tid, tolanguage); meetingDetails.value.tasktype = 3; meetingDetails.refresh(); EasyLoading.dismiss(); diff --git a/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart b/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart index 47aee530a..38222afc8 100644 --- a/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart +++ b/lib/modules/meeting/views/bottomSheet/generate_bottom_sheet.dart @@ -255,8 +255,7 @@ class _GenerateBottomSheetState extends State { }, ), ), - if (!widget.isSummarizeAgain) - Container( + Container( margin: EdgeInsets.symmetric(horizontal: 12.w), decoration: BoxDecoration( color: isDarkMode ? const Color(0xFF2D2D2D) : Colors.white, @@ -264,47 +263,49 @@ class _GenerateBottomSheetState extends State { ), child: Column( children: [ - _row( - 'speakerIdentification'.tr, // 对应中文:区分说话人 - isDarkMode: isDarkMode, - widget: Transform.scale( - scale: 0.8, - alignment: Alignment.centerRight, - child: Switch( - value: _isSpeaker, - onChanged: (bool value) { - setState(() { - _isSpeaker = value; - }); - }, + if (!widget.isSummarizeAgain) + _row( + 'speakerIdentification'.tr, // 对应中文:区分说话人 + isDarkMode: isDarkMode, + widget: Transform.scale( + scale: 0.8, + alignment: Alignment.centerRight, + child: Switch( + value: _isSpeaker, + onChanged: (bool value) { + setState(() { + _isSpeaker = value; + }); + }, + ), ), ), - ), - _row( - 'recordingLanguage'.tr, // 对应中文:录音语言 - value: _formlanguageText, - isDarkMode: isDarkMode, - onTap: () { - Get.bottomSheet( - RecordLanguageBottomSheet(_formlanguage), - isScrollControlled: true, - backgroundColor: - isDarkMode ? Colors.grey[850] : Colors.grey[100], - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.vertical( - top: Radius.circular(12.r), + if (!widget.isSummarizeAgain) + _row( + 'recordingLanguage'.tr, // 对应中文:录音语言 + value: _formlanguageText, + isDarkMode: isDarkMode, + onTap: () { + Get.bottomSheet( + RecordLanguageBottomSheet(_formlanguage), + isScrollControlled: true, + backgroundColor: + isDarkMode ? Colors.grey[850] : Colors.grey[100], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.vertical( + top: Radius.circular(12.r), + ), ), - ), - ).then((value) { - if (value != null) { - setState(() { - _formlanguageText = value['name']; - _formlanguage = value['value']; - }); - } - }); - }, - ), + ).then((value) { + if (value != null) { + setState(() { + _formlanguageText = value['name']; + _formlanguage = value['value']; + }); + } + }); + }, + ), _row( 'targetLanguage'.tr, // 对应中文:目标语言 value: _tolanguageText, @@ -354,13 +355,18 @@ class _GenerateBottomSheetState extends State { _storage.write("meeting_template_list", _templateList); Get.back(); if (widget.isSummarizeAgain) { - _controller.refreshSummary(_templateData['id']); + _controller.refreshSummary( + _templateData['id'], + _templateData['tid'] ?? '', + _tolanguage, + ); } else { _controller.summaryCreate( _formlanguage, _tolanguage, _isSpeaker, _templateData['id'], + _templateData['tid'] ?? '', ); } },