From d52429aec09a71523dc91c03361fe085e396a130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B9=BB=E6=9E=97?= <1742137309@qq.com> Date: Thu, 2 May 2024 20:59:46 +0000 Subject: [PATCH 1/5] update android/build.gradle. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 幻林 <1742137309@qq.com> --- android/build.gradle | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/android/build.gradle b/android/build.gradle index e83fb5d..b09d413 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,8 +1,19 @@ buildscript { ext.kotlin_version = '1.7.10' repositories { + maven { + setUrl("https://maven.aliyun.com/repository/google") + } + maven { + setUrl("https://maven.aliyun.com/repository/public") + } + maven { + setUrl("https://maven.aliyun.com/repository/gradle-plugin") + } + google() mavenCentral() + gradlePluginPortal() } dependencies { @@ -12,8 +23,19 @@ buildscript { allprojects { repositories { + maven { + setUrl("https://maven.aliyun.com/repository/google") + } + maven { + setUrl("https://maven.aliyun.com/repository/public") + } + maven { + setUrl("https://maven.aliyun.com/repository/gradle-plugin") + } + google() mavenCentral() + gradlePluginPortal() } } -- Gitee From 5078439b3286ffc42ddf5c913fc5c74970ca78fc Mon Sep 17 00:00:00 2001 From: zxcvbnma702 <83083486+zxcvbnma702@users.noreply.github.com> Date: Tue, 14 May 2024 14:34:25 +0800 Subject: [PATCH 2/5] implement the webview --- .flutter-plugins | 3 ++ .flutter-plugins-dependencies | 2 +- lib/const/consts.dart | 7 ++-- lib/main.dart | 3 ++ .../manage_for_money_screen/logic.dart | 7 ++++ .../manage_for_money_screen/state.dart | 26 +++++++++++++++ .../manage_for_money_screen/view.dart | 21 ++++++++++++ .../project_detail_screen/logic.dart | 25 +++++++++++++++ pubspec.lock | 32 +++++++++++++++++++ pubspec.yaml | 1 + 10 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 lib/page/ModuleProject/manage_for_money_screen/logic.dart create mode 100644 lib/page/ModuleProject/manage_for_money_screen/state.dart create mode 100644 lib/page/ModuleProject/manage_for_money_screen/view.dart diff --git a/.flutter-plugins b/.flutter-plugins index f3be0a7..11a49a2 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -21,3 +21,6 @@ shared_preferences_foundation=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\h shared_preferences_linux=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_linux-2.3.2\\ shared_preferences_web=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_web-2.2.2\\ shared_preferences_windows=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_windows-2.3.2\\ +webview_flutter=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter-4.7.0\\ +webview_flutter_android=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter_android-3.16.1\\ +webview_flutter_wkwebview=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter_wkwebview-3.13.0\\ diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index be2bee9..65236d0 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]}],"date_created":"2024-05-05 16:51:52.821415","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-09 13:13:48.847679","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/lib/const/consts.dart b/lib/const/consts.dart index e6ec10a..0ae60a8 100644 --- a/lib/const/consts.dart +++ b/lib/const/consts.dart @@ -205,6 +205,7 @@ class MyText { static const String nickName = 'Nick name'; static const String realName = 'Real name'; static const String trind = 'This requirement is not described'; + static const String RDExpenseManagement = 'R&D expense management'; } // TextTranslation By GetX @@ -399,7 +400,8 @@ class Messages extends Translations { MyText.changeWorkLog: '修改工作日志', MyText.nickName: '昵称', MyText.realName: '真实姓名', - MyText.trind: '点击输入内容' + MyText.trind: '点击输入内容', + MyText.RDExpenseManagement: '研发费用管理', }, 'en_US': { MyText.login: 'login', @@ -593,7 +595,8 @@ class Messages extends Translations { MyText.changeWorkLog: 'Change workLog', MyText.nickName: 'Nick name', MyText.realName: 'Real name', - MyText.trind: 'This requirement is not described' + MyText.trind: 'This requirement is not described', + MyText.RDExpenseManagement: 'R&D expense management', }, }; } diff --git a/lib/main.dart b/lib/main.dart index 5bc3b4a..bd3ce76 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,6 +27,7 @@ import 'package:management/page/ModuleProject/create_demand_screen/view.dart'; import 'package:management/page/ModuleProject/create_project_scree/view.dart'; import 'package:management/page/ModuleProject/demand_or_task_detail_screen/logic.dart'; import 'package:management/page/ModuleProject/demand_or_task_detail_screen/view.dart'; +import 'package:management/page/ModuleProject/manage_for_money_screen/view.dart'; import 'package:management/page/ModuleProject/project_conclusion_screen/view.dart'; import 'package:management/page/ModuleProject/project_detail_screen/view.dart'; import 'package:management/page/ModuleProject/project_screen/view.dart'; @@ -129,6 +130,7 @@ class RouteConfig { static const String demandOrTaskScreen = '/demandOrTaskScreen'; static const String showMoreDemandScreen = '/showMoreDemandScreen'; static const String showMoreLogScreen = '/showMoreLogScreen'; + static const String manageForMoney = '/manageForMoneyScreen'; ///ModuleMain static const String mainScreen = '/mainScreen'; @@ -223,6 +225,7 @@ class RouteConfig { name: showMoreDemandScreen, page: () => const ShowMoreDemandScreenPage()), GetPage(name: showMoreLogScreen, page: () => const ShowMoreLogScreenPage()), + GetPage(name: manageForMoney, page: ()=>const ManageForMoneyScreenPage()), ///ModuleMain GetPage(name: mainScreen, page: () => const MainScreenPage()), diff --git a/lib/page/ModuleProject/manage_for_money_screen/logic.dart b/lib/page/ModuleProject/manage_for_money_screen/logic.dart new file mode 100644 index 0000000..c51cca3 --- /dev/null +++ b/lib/page/ModuleProject/manage_for_money_screen/logic.dart @@ -0,0 +1,7 @@ +import 'package:get/get.dart'; + +import 'state.dart'; + +class ManageForMoneyScreenLogic extends GetxController { + final ManageForMoneyScreenState state = ManageForMoneyScreenState(); +} diff --git a/lib/page/ModuleProject/manage_for_money_screen/state.dart b/lib/page/ModuleProject/manage_for_money_screen/state.dart new file mode 100644 index 0000000..2be444d --- /dev/null +++ b/lib/page/ModuleProject/manage_for_money_screen/state.dart @@ -0,0 +1,26 @@ +import 'package:get/get.dart'; +import 'package:management/const/consts.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class ManageForMoneyScreenState { + var controller = WebViewController() + ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..setBackgroundColor(MyColor.white) + ..setNavigationDelegate((NavigationDelegate( + onProgress: (int p) {}, + onPageStarted: (String url) {}, + onPageFinished: (String url) {}, + onWebResourceError: (WebResourceError error) {}, + onNavigationRequest: (NavigationRequest request) { + // if (request.url.startsWith('https://www.youtube.com/')) { + // return NavigationDecision.prevent; + // } + return NavigationDecision.navigate; + }, + ))); + + ManageForMoneyScreenState() { + ///Initialize variables + controller.loadRequest(Uri.parse(Get.arguments['url'])); + } +} diff --git a/lib/page/ModuleProject/manage_for_money_screen/view.dart b/lib/page/ModuleProject/manage_for_money_screen/view.dart new file mode 100644 index 0000000..eb6449c --- /dev/null +++ b/lib/page/ModuleProject/manage_for_money_screen/view.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:management/const/consts.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +import 'logic.dart'; + +class ManageForMoneyScreenPage extends StatelessWidget { + const ManageForMoneyScreenPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final logic = Get.put(ManageForMoneyScreenLogic()); + final state = Get.find().state; + + return Scaffold( + appBar: AppBar(title: Text(MyText.RDExpenseManagement.tr)), + body: WebViewWidget(controller: state.controller), + ); + } +} diff --git a/lib/page/ModuleProject/project_detail_screen/logic.dart b/lib/page/ModuleProject/project_detail_screen/logic.dart index 2c1e048..ddcafe3 100644 --- a/lib/page/ModuleProject/project_detail_screen/logic.dart +++ b/lib/page/ModuleProject/project_detail_screen/logic.dart @@ -8,6 +8,7 @@ import 'package:management/element/showLogSheet.dart'; import 'package:management/element/toast.dart'; import 'package:management/main.dart'; import 'package:management/page/ModuleProject/project_screen/logic.dart'; +import 'package:webview_flutter/webview_flutter.dart'; import 'state.dart'; @@ -133,6 +134,24 @@ class ProjectDetailScreenLogic extends GetxController { ), ), ), + Container( + padding: const EdgeInsets.symmetric(vertical: 2), + width: double.infinity, + height: 60, + child: TextButton( + onPressed: () => _manageForMoney(), + style: Theme.of(Get.context!).textButtonTheme.style, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + MyText.RDExpenseManagement.tr, + style: Theme.of(Get.context!).textTheme.bodyLarge, + ), + ], + ), + ), + ), Container( padding: const EdgeInsets.symmetric(vertical: 2), width: double.infinity, @@ -337,4 +356,10 @@ class ProjectDetailScreenLogic extends GetxController { } return Colors.transparent; } + + _manageForMoney() { + Get.toNamed(RouteConfig.manageForMoney, arguments: { + 'url': 'https://tracking.sshine.ltd/#/devExpenses/importAuxiliaryLedger' + }); + } } diff --git a/pubspec.lock b/pubspec.lock index d32018e..f832ebf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -986,6 +986,38 @@ packages: url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" source: hosted version: "2.4.2" + webview_flutter: + dependency: "direct main" + description: + name: webview_flutter + sha256: "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "4.7.0" + webview_flutter_android: + dependency: transitive + description: + name: webview_flutter_android + sha256: dad3313c9ead95517bb1cae5e1c9d20ba83729d5a59e5e83c0a2d66203f27f91 + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "3.16.1" + webview_flutter_platform_interface: + dependency: transitive + description: + name: webview_flutter_platform_interface + sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "2.10.0" + webview_flutter_wkwebview: + dependency: transitive + description: + name: webview_flutter_wkwebview + sha256: f12f8d8a99784b863e8b85e4a9a5e3cf1839d6803d2c0c3e0533a8f3c5a992a7 + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "3.13.0" win32: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 026c114..3cf78c9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -55,6 +55,7 @@ dependencies: intl: any flutter_datetime_picker_plus: ^2.1.0 timelines: ^0.1.0 + webview_flutter: ^4.7.0 # quill_html_editor: ^2.2.8 -- Gitee From 778dd1e1add3eb7317626fad62b2aadca9a80c5b Mon Sep 17 00:00:00 2001 From: zxcvbnma702 <83083486+zxcvbnma702@users.noreply.github.com> Date: Wed, 15 May 2024 22:37:17 +0800 Subject: [PATCH 3/5] implement the alarm of demand --- .flutter-plugins | 8 +++ .flutter-plugins-dependencies | 2 +- android/app/src/main/AndroidManifest.xml | 2 + lib/const/consts.dart | 3 + lib/page/ModuleMain/main_screen/logic.dart | 29 ++++++++ lib/page/ModuleMain/main_screen/view.dart | 46 ++++++++---- .../manage_for_money_screen/logic.dart | 7 ++ .../manage_for_money_screen/state.dart | 5 +- .../manage_for_money_screen/view.dart | 9 ++- pubspec.lock | 72 +++++++++++++++++++ pubspec.yaml | 2 + 11 files changed, 168 insertions(+), 17 deletions(-) diff --git a/.flutter-plugins b/.flutter-plugins index 11a49a2..5eadbfe 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -1,4 +1,5 @@ # This is a generated file; do not edit or check into version control. +android_intent_plus=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\android_intent_plus-5.0.2\\ file_picker=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\file_picker-8.0.0+1\\ file_preview=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\file_preview-1.2.0\\ file_selector_linux=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\file_selector_linux-0.9.2+1\\ @@ -21,6 +22,13 @@ shared_preferences_foundation=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\h shared_preferences_linux=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_linux-2.3.2\\ shared_preferences_web=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_web-2.2.2\\ shared_preferences_windows=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\shared_preferences_windows-2.3.2\\ +url_launcher=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher-6.2.6\\ +url_launcher_android=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_android-6.3.1\\ +url_launcher_ios=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_ios-6.3.0\\ +url_launcher_linux=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_linux-3.1.1\\ +url_launcher_macos=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_macos-3.2.0\\ +url_launcher_web=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_web-2.2.3\\ +url_launcher_windows=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\url_launcher_windows-3.1.1\\ webview_flutter=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter-4.7.0\\ webview_flutter_android=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter_android-3.16.1\\ webview_flutter_wkwebview=C:\\Users\\SunShibo\\AppData\\Local\\Pub\\Cache\\hosted\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\webview_flutter_wkwebview-3.13.0\\ diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 65236d0..e8e0668 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-09 13:13:48.847679","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"android_intent_plus","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\android_intent_plus-5.0.2\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_web-2.2.3\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"android_intent_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-15 22:29:43.922842","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a601094..81968b0 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -10,6 +10,8 @@ + + { + 'title': listChildDemand.name, + 'allDay': true, + 'beginTime': DateTime.parse( + listChildDemand.startTime ?? DateTime.now().toIso8601String()) + .microsecondsSinceEpoch, + 'endTime': DateTime.parse( + listChildDemand.endTime ?? DateTime.now().toIso8601String()) + .microsecondsSinceEpoch, + 'description': + '${listChildDemand.projectName} + ${listChildDemand.creator?.nickName}', + 'eventLocation': 'unknown', + 'hasAlarm': 1, + 'calendar_id': 1, + 'eventTimezone': DateTime.now().timeZoneName + }, + ); + + intent.launchChooser(MyText.caatsd.tr); + } } diff --git a/lib/page/ModuleMain/main_screen/view.dart b/lib/page/ModuleMain/main_screen/view.dart index 20154fe..c58b397 100644 --- a/lib/page/ModuleMain/main_screen/view.dart +++ b/lib/page/ModuleMain/main_screen/view.dart @@ -475,19 +475,39 @@ class MainScreenPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - state.listChildDemand[index].name ?? - MyText.loading.tr, - style: Theme.of(context).textTheme.titleMedium), - const SizedBox( - height: 2, - ), - Text( - '${MyText.dueDate.tr} : ${state.listChildDemand[index].endTime ?? ' '}', - style: Theme.of(context) - .textTheme - .bodyMedium - ?.copyWith(fontWeight: FontWeight.w400), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + state.listChildDemand[index].name ?? + MyText.loading.tr, + style: Theme.of(context) + .textTheme + .titleMedium), + const SizedBox( + height: 2, + ), + Text( + '${MyText.dueDate.tr} : ${state.listChildDemand[index].endTime ?? ' '}', + style: Theme.of(context) + .textTheme + .bodyMedium + ?.copyWith( + fontWeight: FontWeight.w400), + ), + ], + ), + IconButton( + onPressed: () => logic + .setAlarm(state.listChildDemand[index]), + icon: const Icon( + Icons.alarm_add_outlined, + color: MyColor.gradientYellow, + )) + ], ), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, diff --git a/lib/page/ModuleProject/manage_for_money_screen/logic.dart b/lib/page/ModuleProject/manage_for_money_screen/logic.dart index c51cca3..b64e2cd 100644 --- a/lib/page/ModuleProject/manage_for_money_screen/logic.dart +++ b/lib/page/ModuleProject/manage_for_money_screen/logic.dart @@ -1,7 +1,14 @@ import 'package:get/get.dart'; +import 'package:url_launcher/url_launcher.dart'; import 'state.dart'; class ManageForMoneyScreenLogic extends GetxController { final ManageForMoneyScreenState state = ManageForMoneyScreenState(); + + openBrowser() async { + if (!await launchUrl(state.url)) { + throw Exception('Could not launch ${state.url}'); + } + } } diff --git a/lib/page/ModuleProject/manage_for_money_screen/state.dart b/lib/page/ModuleProject/manage_for_money_screen/state.dart index 2be444d..93c0266 100644 --- a/lib/page/ModuleProject/manage_for_money_screen/state.dart +++ b/lib/page/ModuleProject/manage_for_money_screen/state.dart @@ -18,9 +18,10 @@ class ManageForMoneyScreenState { return NavigationDecision.navigate; }, ))); - + late Uri url; ManageForMoneyScreenState() { ///Initialize variables - controller.loadRequest(Uri.parse(Get.arguments['url'])); + url = Uri.parse(Get.arguments['url']); + controller.loadRequest(url); } } diff --git a/lib/page/ModuleProject/manage_for_money_screen/view.dart b/lib/page/ModuleProject/manage_for_money_screen/view.dart index eb6449c..22dd089 100644 --- a/lib/page/ModuleProject/manage_for_money_screen/view.dart +++ b/lib/page/ModuleProject/manage_for_money_screen/view.dart @@ -14,7 +14,14 @@ class ManageForMoneyScreenPage extends StatelessWidget { final state = Get.find().state; return Scaffold( - appBar: AppBar(title: Text(MyText.RDExpenseManagement.tr)), + appBar: AppBar( + title: Text(MyText.RDExpenseManagement.tr,style: Theme.of(context).textTheme.bodyLarge,), + actions: [ + IconButton( + onPressed: () => logic.openBrowser(), + icon: const Icon(Icons.open_in_browser_outlined)), + ], + ), body: WebViewWidget(controller: state.controller), ); } diff --git a/pubspec.lock b/pubspec.lock index f832ebf..75c46c7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -17,6 +17,14 @@ packages: url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" source: hosted version: "5.13.0" + android_intent_plus: + dependency: "direct main" + description: + name: android_intent_plus + sha256: "2bfdbee8d65e7c26f88b66f0a91f2863da4d3596d8a658b4162c8de5cf04b074" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "5.0.2" archive: dependency: transitive description: @@ -922,6 +930,70 @@ packages: url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" source: hosted version: "1.3.2" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "6.2.6" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "6.3.1" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "6.3.0" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "3.1.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "3.2.0" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "2.2.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub/" + source: hosted + version: "3.1.1" vector_graphics: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 3cf78c9..2954aeb 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -56,6 +56,8 @@ dependencies: flutter_datetime_picker_plus: ^2.1.0 timelines: ^0.1.0 webview_flutter: ^4.7.0 + url_launcher: ^6.2.6 + android_intent_plus: ^5.0.2 # quill_html_editor: ^2.2.8 -- Gitee From a9ac8877b5bb29b982a058a90e4f360eb5548f53 Mon Sep 17 00:00:00 2001 From: zxcvbnma702 <83083486+zxcvbnma702@users.noreply.github.com> Date: Fri, 17 May 2024 13:22:18 +0800 Subject: [PATCH 4/5] implement the preview of file --- .flutter-plugins-dependencies | 2 +- lib/const/init.dart | 23 ++++++------ lib/main.dart | 9 ++++- .../demand_or_task_detail_screen/logic.dart | 20 ++++++++++- .../demand_or_task_detail_screen/view.dart | 1 + .../file_preview_screen/logic.dart | 7 ++++ .../file_preview_screen/state.dart | 11 ++++++ .../file_preview_screen/view.dart | 36 +++++++++++++++++++ pubspec.yaml | 3 +- 9 files changed, 98 insertions(+), 14 deletions(-) create mode 100644 lib/page/ModuleProject/file_preview_screen/logic.dart create mode 100644 lib/page/ModuleProject/file_preview_screen/state.dart create mode 100644 lib/page/ModuleProject/file_preview_screen/view.dart diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index e8e0668..15bc46f 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"android_intent_plus","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\android_intent_plus-5.0.2\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_web-2.2.3\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"android_intent_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-15 22:29:43.922842","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"android_intent_plus","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\android_intent_plus-5.0.2\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_web-2.2.3\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"android_intent_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-17 13:17:25.036971","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/lib/const/init.dart b/lib/const/init.dart index a0368c2..6ae37fe 100644 --- a/lib/const/init.dart +++ b/lib/const/init.dart @@ -14,13 +14,16 @@ class GlobalInit { static String _accessToken = ''; static String _companyId = "0"; static int _expireTime = 0; - static String headImage = 'https://p3-passport.byteacctimg.com/img/user-avatar/e7b1c27411c5964953fb3b30f1e4877b~130x130.awebp'; + static String headImage = + 'https://p3-passport.byteacctimg.com/img/user-avatar/e7b1c27411c5964953fb3b30f1e4877b~130x130.awebp'; static Future init() async { WidgetsFlutterBinding.ensureInitialized(); _prefs = await SharedPreferences.getInstance(); EasyLoading.instance.toastPosition = EasyLoadingToastPosition.bottom; - await FilePreview.initTBS(license: "initTbs"); + await FilePreview.initTBS( + license: + 'l+ByJwEptFYnSDXOdHYl/yS41522+Kt6OLRDpHWaJpyPMK//O3xMkOMObJaPqgEu'); return Future.value(); } @@ -68,14 +71,14 @@ class GlobalInit { // 只能在登录后调用 static String getAccessToken() { // if (DateTime.now().millisecondsSinceEpoch > _expireTime) { - String? refreshToken = getSpData(SPFlag.refreshToken); - MyHttpClient.getRefreshByToken(refreshToken!).then((value) { - if (value.code == 200) { - saveSpData(SPFlag.expiresIn, value.data!.expiresIn!); - saveSpData(SPFlag.accessToken, value.data!.accessToken!); - return value.data!.accessToken; - } - }); + String? refreshToken = getSpData(SPFlag.refreshToken); + MyHttpClient.getRefreshByToken(refreshToken!).then((value) { + if (value.code == 200) { + saveSpData(SPFlag.expiresIn, value.data!.expiresIn!); + saveSpData(SPFlag.accessToken, value.data!.accessToken!); + return value.data!.accessToken; + } + }); // } return _accessToken; } diff --git a/lib/main.dart b/lib/main.dart index bd3ce76..9489c7c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,6 +27,7 @@ import 'package:management/page/ModuleProject/create_demand_screen/view.dart'; import 'package:management/page/ModuleProject/create_project_scree/view.dart'; import 'package:management/page/ModuleProject/demand_or_task_detail_screen/logic.dart'; import 'package:management/page/ModuleProject/demand_or_task_detail_screen/view.dart'; +import 'package:management/page/ModuleProject/file_preview_screen/view.dart'; import 'package:management/page/ModuleProject/manage_for_money_screen/view.dart'; import 'package:management/page/ModuleProject/project_conclusion_screen/view.dart'; import 'package:management/page/ModuleProject/project_detail_screen/view.dart'; @@ -131,6 +132,7 @@ class RouteConfig { static const String showMoreDemandScreen = '/showMoreDemandScreen'; static const String showMoreLogScreen = '/showMoreLogScreen'; static const String manageForMoney = '/manageForMoneyScreen'; + static const String filePreviewScreen = '/filePreviewScreen'; ///ModuleMain static const String mainScreen = '/mainScreen'; @@ -225,7 +227,12 @@ class RouteConfig { name: showMoreDemandScreen, page: () => const ShowMoreDemandScreenPage()), GetPage(name: showMoreLogScreen, page: () => const ShowMoreLogScreenPage()), - GetPage(name: manageForMoney, page: ()=>const ManageForMoneyScreenPage()), + GetPage(name: manageForMoney, page: () => const ManageForMoneyScreenPage()), + GetPage( + name: filePreviewScreen, + page: () => const FilePreviewScreenPage(), + transition: Transition.downToUp, + ), ///ModuleMain GetPage(name: mainScreen, page: () => const MainScreenPage()), diff --git a/lib/page/ModuleProject/demand_or_task_detail_screen/logic.dart b/lib/page/ModuleProject/demand_or_task_detail_screen/logic.dart index 9119f4d..9b9fc05 100644 --- a/lib/page/ModuleProject/demand_or_task_detail_screen/logic.dart +++ b/lib/page/ModuleProject/demand_or_task_detail_screen/logic.dart @@ -1,5 +1,6 @@ import 'package:dio/dio.dart' as dio; import 'package:file_picker/file_picker.dart'; +import 'package:file_preview/file_preview.dart'; import 'package:flutter/material.dart'; import 'package:flutter_datetime_picker_plus/flutter_datetime_picker_plus.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -8,6 +9,8 @@ import 'package:management/const/consts.dart'; import 'package:management/const/init.dart'; import 'package:management/data/network/api/api.dart'; import 'package:management/data/network/entity/demand/request/ChangeDemandOrTaskRequestParams.dart'; +import 'package:management/data/network/entity/demand/response/DemandOrTaskDetailResponse.dart' + as demand_detail; import 'package:management/data/network/entity/demand/response/ListChildDemandOrTaskResponse.dart'; import 'package:management/data/network/entity/demand/response/ListLogDemandOrTaskResponse.dart' as log; @@ -285,7 +288,8 @@ class DemandOrTaskDetailScreenLogic extends GetxController { if (value.code == 200) { refreshDemandOrTaskDetailPage(); Get.find().getListByStatus(); - Get.find().refreshProjectDetailPage(); + // error + // Get.find()?.refreshProjectDetailPage(); } else { Utils.toastError(value.msg); } @@ -537,4 +541,18 @@ class DemandOrTaskDetailScreenLogic extends GetxController { id: state.demandId, description: newDescription); _realChangeDemand(params); } + + previewFile(demand_detail.Attachments listAttachment) async { + if (listAttachment.url == null) return; + // Utils.toastWarning(url); + //使用前进行判断是否已经初始化 + // var isInit = await FilePreview.tbsHasInit(); + // if (!isInit) { + // await FilePreview.initTBS(license: "initTbs"); + // return; + // } + + Get.toNamed(RouteConfig.filePreviewScreen, + arguments: {'url': listAttachment.url, 'name': listAttachment.name}); + } } diff --git a/lib/page/ModuleProject/demand_or_task_detail_screen/view.dart b/lib/page/ModuleProject/demand_or_task_detail_screen/view.dart index 02998ce..1c6c3ef 100644 --- a/lib/page/ModuleProject/demand_or_task_detail_screen/view.dart +++ b/lib/page/ModuleProject/demand_or_task_detail_screen/view.dart @@ -348,6 +348,7 @@ class DemandOrTaskDetailScreenPage extends StatelessWidget { size: 18, color: MyColor.primary, ), + onPressed: () => logic.previewFile(state.listAttachment[index]), deleteIcon: const Icon( IconLight.Iconly_Light_Outline_Close_Square, size: 18, diff --git a/lib/page/ModuleProject/file_preview_screen/logic.dart b/lib/page/ModuleProject/file_preview_screen/logic.dart new file mode 100644 index 0000000..6633bf8 --- /dev/null +++ b/lib/page/ModuleProject/file_preview_screen/logic.dart @@ -0,0 +1,7 @@ +import 'package:get/get.dart'; + +import 'state.dart'; + +class FilePreviewScreenLogic extends GetxController { + final FilePreviewScreenState state = FilePreviewScreenState(); +} diff --git a/lib/page/ModuleProject/file_preview_screen/state.dart b/lib/page/ModuleProject/file_preview_screen/state.dart new file mode 100644 index 0000000..dbb43ad --- /dev/null +++ b/lib/page/ModuleProject/file_preview_screen/state.dart @@ -0,0 +1,11 @@ +import 'package:get/get.dart'; + +class FilePreviewScreenState { + var url = ''; + var name = ''; + FilePreviewScreenState() { + ///Initialize variables + url = Get.arguments['url']; + name = Get.arguments['name']; + } +} diff --git a/lib/page/ModuleProject/file_preview_screen/view.dart b/lib/page/ModuleProject/file_preview_screen/view.dart new file mode 100644 index 0000000..080a886 --- /dev/null +++ b/lib/page/ModuleProject/file_preview_screen/view.dart @@ -0,0 +1,36 @@ +import 'package:file_preview/file_preview.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:management/element/toast.dart'; + +import 'logic.dart'; + +class FilePreviewScreenPage extends StatelessWidget { + const FilePreviewScreenPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + final logic = Get.put(FilePreviewScreenLogic()); + final state = Get.find().state; + + return Scaffold( + appBar: AppBar( + title: Text(state.name), + ), + body: Expanded( + child: FilePreviewWidget( + width: 400, + height: 700, + path: state.url, + callBack: FilePreviewCallBack(onShow: () { + Utils.toastNotification("文件打开成功"); + }, onDownload: (progress) { + Utils.toast('文件下载进度', "$progress %"); + }, onFail: (code, msg) { + Utils.toastError("文件打开失败 $code $msg"); + }), + ), + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 2954aeb..329988e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -49,7 +49,7 @@ dependencies: flutter_easyloading: ^3.0.5 image_picker: ^1.0.7 file_picker: ^8.0.0+1 - file_preview: ^1.2.0 + flutter_localizations: sdk: flutter intl: any @@ -58,6 +58,7 @@ dependencies: webview_flutter: ^4.7.0 url_launcher: ^6.2.6 android_intent_plus: ^5.0.2 + file_preview: ^1.2.0 # quill_html_editor: ^2.2.8 -- Gitee From c77163028fafda98b9484bc0456e1f2dc1014f6f Mon Sep 17 00:00:00 2001 From: zxcvbnma702 <83083486+zxcvbnma702@users.noreply.github.com> Date: Mon, 20 May 2024 10:12:01 +0800 Subject: [PATCH 5/5] implement the download of file --- .flutter-plugins-dependencies | 2 +- lib/const/consts.dart | 13 +- .../people/CompanyMemberDetailResponse.dart | 117 +++++++++++------- .../employee_detail_screen/view.dart | 72 ++++------- .../file_preview_screen/logic.dart | 7 ++ .../file_preview_screen/view.dart | 10 +- 6 files changed, 121 insertions(+), 100 deletions(-) diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 15bc46f..77fe1d2 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"android_intent_plus","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\android_intent_plus-5.0.2\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_web-2.2.3\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"android_intent_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-17 13:17:25.036971","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":[]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_ios-0.8.9+1\\\\","native_build":true,"dependencies":[]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_wkwebview-3.13.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"android_intent_plus","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\android_intent_plus-5.0.2\\\\","native_build":true,"dependencies":[]},{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_preview-1.2.0\\\\","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\flutter_plugin_android_lifecycle-2.0.19\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_android-0.8.9+6\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_android-2.2.2\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\webview_flutter_android-3.16.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"file_selector_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_macos-0.9.3+3\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_macos-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_macos"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_foundation-2.3.5\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_linux-0.9.2+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_linux-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_linux"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_linux-2.3.2\\\\","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"file_selector_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_selector_windows-0.9.3+1\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_windows-0.2.1+1\\\\","native_build":false,"dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\isar_flutter_libs-3.1.0+1\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_windows-2.3.2\\\\","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"file_picker","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\file_picker-8.0.0+1\\\\","dependencies":[]},{"name":"image_picker_for_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\image_picker_for_web-3.0.2\\\\","dependencies":[]},{"name":"shared_preferences_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\shared_preferences_web-2.2.2\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\SunShibo\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\mirrors.tuna.tsinghua.edu.cn%47dart-pub%47\\\\url_launcher_web-2.2.3\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"android_intent_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"file_preview","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"isar_flutter_libs","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2024-05-20 10:08:47.927238","version":"3.22.0-14.0.pre.62","swift_package_manager_enabled":false} \ No newline at end of file diff --git a/lib/const/consts.dart b/lib/const/consts.dart index 011a941..ac7937b 100644 --- a/lib/const/consts.dart +++ b/lib/const/consts.dart @@ -207,6 +207,9 @@ class MyText { static const String trind = 'This requirement is not described'; static const String RDExpenseManagement = 'R&D expense management'; static const String caatsd = 'Choose an App to save the Date'; + static const String fileOpenSuccess = 'File opened successfully'; + static const String fileOpenProgress = 'File download progress'; + static const String fileOpenFail = 'File download failed'; } // TextTranslation By GetX @@ -403,7 +406,10 @@ class Messages extends Translations { MyText.realName: '真实姓名', MyText.trind: '点击输入内容', MyText.RDExpenseManagement: '研发费用管理', - MyText.caatsd: '选择日历应用去保存日程' + MyText.caatsd: '选择日历应用去保存日程', + MyText.fileOpenSuccess: '文件打开成功', + MyText.fileOpenProgress: '文件下载进度', + MyText.fileOpenFail: '文件下载失败' }, 'en_US': { MyText.login: 'login', @@ -599,7 +605,10 @@ class Messages extends Translations { MyText.realName: 'Real name', MyText.trind: 'This requirement is not described', MyText.RDExpenseManagement: 'R&D expense management', - MyText.caatsd: 'Choose an App to save the Date' + MyText.caatsd: 'Choose an App to save the Date', + MyText.fileOpenSuccess: 'File opened successfully', + MyText.fileOpenProgress: 'File download progress', + MyText.fileOpenFail: 'File download failed' }, }; } diff --git a/lib/data/network/entity/manage/people/CompanyMemberDetailResponse.dart b/lib/data/network/entity/manage/people/CompanyMemberDetailResponse.dart index a4df8a4..97ba17d 100644 --- a/lib/data/network/entity/manage/people/CompanyMemberDetailResponse.dart +++ b/lib/data/network/entity/manage/people/CompanyMemberDetailResponse.dart @@ -1,17 +1,16 @@ /// code : 200 /// msg : "ok" -/// data : {"id":1764677020037554177,"jobNumber":null,"userId":1763201736960532482,"createTime":"2024-03-24T18:08:05","roleId":0,"avatar":"https://oss.sshine.ltd/tracking/public/20240407/a988416c0a0042549e61e9e6b2e9620e-scaled_IMG_20240407_113104.jpg","nickName":"rrrr"} +/// data : {"id":1764677020037554177,"jobNumber":"66","userId":1763201736960532482,"createTime":"2024-03-24T18:08:05","roleId":0,"avatar":"https://oss.sshine.ltd/tracking/public/20240517/e79b3811b8f84e169b121ff03cbc2227-scaled_1000076595.jpg","nickName":"rrrr","attProjectNum":12,"chargeTaskNum":0,"deviceNum":0} class CompanyMemberDetailResponse { CompanyMemberDetailResponse({ - num? code, - String? msg, - Data? data, - }) { + num? code, + String? msg, + Data? data,}){ _code = code; _msg = msg; _data = data; - } +} CompanyMemberDetailResponse.fromJson(dynamic json) { _code = json['code']; @@ -21,16 +20,13 @@ class CompanyMemberDetailResponse { num? _code; String? _msg; Data? _data; - CompanyMemberDetailResponse copyWith({ - num? code, - String? msg, - Data? data, - }) => - CompanyMemberDetailResponse( - code: code ?? _code, - msg: msg ?? _msg, - data: data ?? _data, - ); +CompanyMemberDetailResponse copyWith({ num? code, + String? msg, + Data? data, +}) => CompanyMemberDetailResponse( code: code ?? _code, + msg: msg ?? _msg, + data: data ?? _data, +); num? get code => _code; String? get msg => _msg; Data? get data => _data; @@ -44,26 +40,32 @@ class CompanyMemberDetailResponse { } return map; } + } /// id : 1764677020037554177 -/// jobNumber : null +/// jobNumber : "66" /// userId : 1763201736960532482 /// createTime : "2024-03-24T18:08:05" /// roleId : 0 -/// avatar : "https://oss.sshine.ltd/tracking/public/20240407/a988416c0a0042549e61e9e6b2e9620e-scaled_IMG_20240407_113104.jpg" +/// avatar : "https://oss.sshine.ltd/tracking/public/20240517/e79b3811b8f84e169b121ff03cbc2227-scaled_1000076595.jpg" /// nickName : "rrrr" +/// attProjectNum : 12 +/// chargeTaskNum : 0 +/// deviceNum : 0 class Data { Data({ - num? id, - dynamic jobNumber, - num? userId, - String? createTime, - num? roleId, - String? avatar, - String? nickName, - }) { + num? id, + String? jobNumber, + num? userId, + String? createTime, + num? roleId, + String? avatar, + String? nickName, + num? attProjectNum, + num? chargeTaskNum, + num? deviceNum,}){ _id = id; _jobNumber = jobNumber; _userId = userId; @@ -71,7 +73,10 @@ class Data { _roleId = roleId; _avatar = avatar; _nickName = nickName; - } + _attProjectNum = attProjectNum; + _chargeTaskNum = chargeTaskNum; + _deviceNum = deviceNum; +} Data.fromJson(dynamic json) { _id = json['id']; @@ -81,39 +86,51 @@ class Data { _roleId = json['roleId']; _avatar = json['avatar']; _nickName = json['nickName']; + _attProjectNum = json['attProjectNum']; + _chargeTaskNum = json['chargeTaskNum']; + _deviceNum = json['deviceNum']; } num? _id; - dynamic _jobNumber; + String? _jobNumber; num? _userId; String? _createTime; num? _roleId; String? _avatar; String? _nickName; - Data copyWith({ - num? id, - dynamic jobNumber, - num? userId, - String? createTime, - num? roleId, - String? avatar, - String? nickName, - }) => - Data( - id: id ?? _id, - jobNumber: jobNumber ?? _jobNumber, - userId: userId ?? _userId, - createTime: createTime ?? _createTime, - roleId: roleId ?? _roleId, - avatar: avatar ?? _avatar, - nickName: nickName ?? _nickName, - ); + num? _attProjectNum; + num? _chargeTaskNum; + num? _deviceNum; +Data copyWith({ num? id, + String? jobNumber, + num? userId, + String? createTime, + num? roleId, + String? avatar, + String? nickName, + num? attProjectNum, + num? chargeTaskNum, + num? deviceNum, +}) => Data( id: id ?? _id, + jobNumber: jobNumber ?? _jobNumber, + userId: userId ?? _userId, + createTime: createTime ?? _createTime, + roleId: roleId ?? _roleId, + avatar: avatar ?? _avatar, + nickName: nickName ?? _nickName, + attProjectNum: attProjectNum ?? _attProjectNum, + chargeTaskNum: chargeTaskNum ?? _chargeTaskNum, + deviceNum: deviceNum ?? _deviceNum, +); num? get id => _id; - dynamic get jobNumber => _jobNumber; + String? get jobNumber => _jobNumber; num? get userId => _userId; String? get createTime => _createTime; num? get roleId => _roleId; String? get avatar => _avatar; String? get nickName => _nickName; + num? get attProjectNum => _attProjectNum; + num? get chargeTaskNum => _chargeTaskNum; + num? get deviceNum => _deviceNum; Map toJson() { final map = {}; @@ -124,6 +141,10 @@ class Data { map['roleId'] = _roleId; map['avatar'] = _avatar; map['nickName'] = _nickName; + map['attProjectNum'] = _attProjectNum; + map['chargeTaskNum'] = _chargeTaskNum; + map['deviceNum'] = _deviceNum; return map; } -} + +} \ No newline at end of file diff --git a/lib/page/ModuleManage/employee_detail_screen/view.dart b/lib/page/ModuleManage/employee_detail_screen/view.dart index a5065d6..a0c901e 100644 --- a/lib/page/ModuleManage/employee_detail_screen/view.dart +++ b/lib/page/ModuleManage/employee_detail_screen/view.dart @@ -12,9 +12,7 @@ class EmployeeDetailScreenPage extends StatelessWidget { @override Widget build(BuildContext context) { final logic = Get.put(EmployeeDetailScreenLogic()); - final state = Get - .find() - .state; + final state = Get.find().state; return Scaffold( appBar: AppBar(), @@ -30,8 +28,8 @@ class EmployeeDetailScreenPage extends StatelessWidget { ), ClipOval( child: FadeInImage( - image: NetworkImage(state.data.value.avatar ?? - GlobalInit.headImage), + image: NetworkImage( + state.data.value.avatar ?? GlobalInit.headImage), height: 120, width: 120, fit: BoxFit.fill, @@ -44,20 +42,14 @@ class EmployeeDetailScreenPage extends StatelessWidget { ), Text( state.data.value.nickName ?? MyText.defaultName, - style: Theme - .of(context) - .textTheme - .titleLarge, + style: Theme.of(context).textTheme.titleLarge, ), const SizedBox( height: 6, ), Text( state.data.value.jobNumber.toString(), - style: Theme - .of(context) - .textTheme - .bodyMedium, + style: Theme.of(context).textTheme.bodyMedium, ), const SizedBox( height: 30, @@ -71,23 +63,19 @@ class EmployeeDetailScreenPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - state.projectNum.value.toString(), - style: Theme - .of(context) - .textTheme - .titleLarge, + state.data.value.attProjectNum.toString(), + style: Theme.of(context).textTheme.titleLarge, ), Text( MyText.projects.tr, - style: Theme - .of(context) + style: Theme.of(context) .textTheme .bodyMedium ?.copyWith( - fontWeight: FontWeight.w400, - color: Get.isDarkMode - ? MyColor.white - : MyColor.grayScale[800]), + fontWeight: FontWeight.w400, + color: Get.isDarkMode + ? MyColor.white + : MyColor.grayScale[800]), ), ], ), @@ -102,23 +90,19 @@ class EmployeeDetailScreenPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( - state.taskNum.value.toString(), - style: Theme - .of(context) - .textTheme - .titleLarge, + state.data.value.chargeTaskNum.toString(), + style: Theme.of(context).textTheme.titleLarge, ), Text( MyText.tasks.tr, - style: Theme - .of(context) + style: Theme.of(context) .textTheme .bodyMedium ?.copyWith( - fontWeight: FontWeight.w400, - color: Get.isDarkMode - ? MyColor.white - : MyColor.grayScale[800]), + fontWeight: FontWeight.w400, + color: Get.isDarkMode + ? MyColor.white + : MyColor.grayScale[800]), ), ], ), @@ -132,23 +116,19 @@ class EmployeeDetailScreenPage extends StatelessWidget { Column( children: [ Text( - state.deviceNum.value.toString(), - style: Theme - .of(context) - .textTheme - .titleLarge, + state.data.value.deviceNum.toString(), + style: Theme.of(context).textTheme.titleLarge, ), Text( MyText.devices.tr, - style: Theme - .of(context) + style: Theme.of(context) .textTheme .bodyMedium ?.copyWith( - fontWeight: FontWeight.w400, - color: Get.isDarkMode - ? MyColor.white - : MyColor.grayScale[800]), + fontWeight: FontWeight.w400, + color: Get.isDarkMode + ? MyColor.white + : MyColor.grayScale[800]), ), ], ) diff --git a/lib/page/ModuleProject/file_preview_screen/logic.dart b/lib/page/ModuleProject/file_preview_screen/logic.dart index 6633bf8..0deaffe 100644 --- a/lib/page/ModuleProject/file_preview_screen/logic.dart +++ b/lib/page/ModuleProject/file_preview_screen/logic.dart @@ -1,7 +1,14 @@ import 'package:get/get.dart'; +import 'package:url_launcher/url_launcher.dart'; import 'state.dart'; class FilePreviewScreenLogic extends GetxController { final FilePreviewScreenState state = FilePreviewScreenState(); + + download() async { + if (!await launchUrl(Uri.parse(state.url))) { + throw Exception('Could not launch ${state.url}'); + } + } } diff --git a/lib/page/ModuleProject/file_preview_screen/view.dart b/lib/page/ModuleProject/file_preview_screen/view.dart index 080a886..0618606 100644 --- a/lib/page/ModuleProject/file_preview_screen/view.dart +++ b/lib/page/ModuleProject/file_preview_screen/view.dart @@ -1,6 +1,7 @@ import 'package:file_preview/file_preview.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:management/const/consts.dart'; import 'package:management/element/toast.dart'; import 'logic.dart'; @@ -16,6 +17,9 @@ class FilePreviewScreenPage extends StatelessWidget { return Scaffold( appBar: AppBar( title: Text(state.name), + actions: [ + IconButton(onPressed:() => logic.download(), icon: const Icon(Icons.download),) + ], ), body: Expanded( child: FilePreviewWidget( @@ -23,11 +27,11 @@ class FilePreviewScreenPage extends StatelessWidget { height: 700, path: state.url, callBack: FilePreviewCallBack(onShow: () { - Utils.toastNotification("文件打开成功"); + Utils.toastNotification(MyText.fileOpenSuccess.tr); }, onDownload: (progress) { - Utils.toast('文件下载进度', "$progress %"); + Utils.toast(MyText.fileOpenProgress.tr, "$progress %"); }, onFail: (code, msg) { - Utils.toastError("文件打开失败 $code $msg"); + Utils.toastError("${MyText.fileOpenFail.tr} $code $msg"); }), ), ), -- Gitee