浏览代码

将资源统一到assets文件夹下

felix 1 年之前
父节点
当前提交
f028e0ef3c

+ 0 - 0
lib/audio/LiveTalkingMessage.opus → assets/audio/LiveTalkingMessage.opus


+ 0 - 0
lib/fonts/DroidSansFallback.ttf → assets/fonts/DroidSansFallback.ttf


+ 0 - 0
lib/icons/FISIcons.ttf → assets/icons/FISIcons.ttf


+ 0 - 0
lib/images/avatar_man.png → assets/images/avatar_man.png


+ 0 - 0
lib/images/mock_terminal.png → assets/images/mock_terminal.png


+ 0 - 0
lib/images/no_data.png → assets/images/no_data.png


+ 11 - 12
lib/consultation/consultationimagesview.dart

@@ -107,9 +107,8 @@ class ConsultationImageView extends StatelessWidget {
             var consultationFileDTO =
                 convertRemedicalMeasuredInfoDTOToconsultationFileDTO(imageInfo);
             final image = InkWell(
-                onTap: () {                  
-                },
-                onDoubleTap: (){
+                onTap: () {},
+                onDoubleTap: () {
                   Get.to(ConsultationImagePage(consultationFileDTO));
                 },
                 child: Container(
@@ -168,9 +167,7 @@ class ConsultationImageView extends StatelessWidget {
             final image = CloudImageItem(
               _index,
               imageInfo,
-              onTap: () {
-                
-              },
+              onTap: () {},
               onDoubleTap: () {
                 Get.to(ConsultationImagePage(consultationFileDTO));
               },
@@ -223,7 +220,7 @@ Widget _mockEmptyView() {
       children: [
         Center(
           child: Image.asset(
-            "lib/images/no_data.png",
+            "assets/images/no_data.png",
             width: 300,
             height: 300,
             fit: BoxFit.cover,
@@ -237,10 +234,11 @@ Widget _mockEmptyView() {
 
 class ScreenshotImags extends StatelessWidget {
   final List<ConsultationFileDTO> imageList;
-    /// 图片单机事件
+
+  /// 图片单机事件
   final ReportEditController? controller;
   int _index = 0;
-  ScreenshotImags(this.imageList,{this.controller});
+  ScreenshotImags(this.imageList, {this.controller});
   @override
   Widget build(BuildContext context) {
     return Container(
@@ -259,13 +257,14 @@ class ScreenshotImags extends StatelessWidget {
           (i) {
             var imageInfo = imageList[i];
             final image = ConsultationContentImage(
-                controller:  controller,
+                controller: controller,
                 consultationFileInfo: imageInfo,
                 onDoubleTap: () {
-                   Get.to(ConsultationImagePage(imageInfo));
+                  Get.to(ConsultationImagePage(imageInfo));
                 },
                 onTap: () {
-                   controller?.onConsultationImageSelected(imageInfo.coverImageUrl ?? '');
+                  controller?.onConsultationImageSelected(
+                      imageInfo.coverImageUrl ?? '');
                 },
                 serialNo: _index + 1,
                 contentWidth: kIsMobile ? 280 : 300,

+ 24 - 15
lib/consultation/consultationreportview.dart

@@ -12,7 +12,6 @@ import 'package:flyinsonolite/theme/customthemedata.dart';
 import 'package:get/get.dart';
 
 class ConsultationReportView extends GetView<ConsultationDetailController> {
-
   @override
   Widget build(BuildContext context) {
     var reportList = controller.reports.value;
@@ -47,7 +46,7 @@ class ConsultationReportView extends GetView<ConsultationDetailController> {
         children: [
           Center(
             child: Image.asset(
-              "lib/images/no_data.png",
+              "assets/images/no_data.png",
               width: 300,
               height: 300,
               fit: BoxFit.cover,
@@ -96,42 +95,52 @@ class ConsultationReportListViewItem extends StatelessWidget {
   Widget _buildOperateButtons() {
     return Row(
       mainAxisAlignment: MainAxisAlignment.center,
-      children: [        
+      children: [
         FISLinearGradientElevatedButton(
           _openReportPreviewPage,
           i18nBook.common.view.t,
           Storage.currentTheme.dialogStyle.buttonGradient,
           textStyle: normalTextStye,
         ),
-        if (reportInfo.canEditReport&&
-              Storage.user.hasFeature(FeatureKeys.DiagnosisEditReport)) ...[
-          const SizedBox(width: 10,),
+        if (reportInfo.canEditReport &&
+            Storage.user.hasFeature(FeatureKeys.DiagnosisEditReport)) ...[
+          const SizedBox(
+            width: 10,
+          ),
           FISLinearGradientElevatedButton(
-            ()async{
-              await Get.to(ReportEditPage(controller.consultationDetail.value!, reportCode: reportInfo.reportCode,));
+            () async {
+              await Get.to(ReportEditPage(
+                controller.consultationDetail.value!,
+                reportCode: reportInfo.reportCode,
+              ));
             },
             i18nBook.common.modify.t,
             Storage.currentTheme.dialogStyle.buttonGradient,
             textStyle: normalTextStye,
-        ),],
-        const SizedBox(width: 10,),        
+          ),
+        ],
+        const SizedBox(
+          width: 10,
+        ),
         FISLinearGradientElevatedButton(
-          ()async{
+          () async {
             await controller.printReportDirectlyAsync(reportInfo);
           },
           i18nBook.remedical.print.t,
           Storage.currentTheme.dialogStyle.buttonGradient,
           textStyle: normalTextStye,
         ),
-        const SizedBox(width: 10,),
+        const SizedBox(
+          width: 10,
+        ),
         FISLinearGradientElevatedButton(
-          ()async{
+          () async {
             await controller.exportReportDirectlyAsync(reportInfo);
           },
           i18nBook.remedical.export.t,
           Storage.currentTheme.dialogStyle.buttonGradient,
           textStyle: normalTextStye,
-        ),       
+        ),
       ],
     );
   }
@@ -266,4 +275,4 @@ class ConsultationReportListViewItem extends StatelessWidget {
   void _openReportPreviewPage() {
     Get.to(ConsultationReportPreviewPage(reportInfo));
   }
-}
+}

+ 1 - 1
lib/consultation/consultationvisitview.dart

@@ -204,7 +204,7 @@ class _ConsultationVisitViewState extends State<ConsultationVisitView> {
         children: [
           Center(
             child: Image.asset(
-              "lib/images/no_data.png",
+              "assets/images/no_data.png",
               width: 300,
               height: 300,
               fit: BoxFit.cover,

+ 45 - 41
lib/consultation/liveconsultation/consultationpopup.dart

@@ -13,29 +13,34 @@ import 'package:flyinsonolite/models/storage.dart';
 import 'package:get/get.dart';
 import 'package:logger/logger.dart';
 
-class ConsultationPopup{
-   //static bool get isPc => !kIsMobile;
-   static bool _stopTimer = false;
-   static bool _isPlaying = false;
-   static PopupTimer? _timer;
-   static const String audioPath = 'lib/audio/LiveTalkingMessage.opus';
-   static final FlutterSoundPlayer _flutterSound =FlutterSoundPlayer(logLevel: Level.nothing);
+class ConsultationPopup {
+  //static bool get isPc => !kIsMobile;
+  static bool _stopTimer = false;
+  static bool _isPlaying = false;
+  static PopupTimer? _timer;
+  static const String audioPath = 'assets/audio/LiveTalkingMessage.opus';
+  static final FlutterSoundPlayer _flutterSound =
+      FlutterSoundPlayer(logLevel: Level.nothing);
 
-   static void startListening(){
-     var liveConsultationManager = Get.find<ILiveConsultationManager>();
+  static void startListening() {
+    var liveConsultationManager = Get.find<ILiveConsultationManager>();
 
-     ///开始会诊通知事件 11
-     liveConsultationManager.onInviteLiveConsultation.addListener(onInviteLiveConsultation);
-     //邀请者取消接听会诊事件
-     liveConsultationManager.onCancelConsultation .addListener(onCancelConsultation);
-      //取消会诊过程中邀请成员的通知(通知被邀请者) 7
-    liveConsultationManager.onCancelInvitingConsultation.addListener(onCancelInvitingConsultation);
+    ///开始会诊通知事件 11
+    liveConsultationManager.onInviteLiveConsultation
+        .addListener(onInviteLiveConsultation);
+    //邀请者取消接听会诊事件
+    liveConsultationManager.onCancelConsultation
+        .addListener(onCancelConsultation);
+    //取消会诊过程中邀请成员的通知(通知被邀请者) 7
+    liveConsultationManager.onCancelInvitingConsultation
+        .addListener(onCancelInvitingConsultation);
 
     //会诊过程中邀请成员的通知(通知被邀请者) 8
-    liveConsultationManager.onInviteeInLiveConsultation.addListener(onJoinLiveConsultation);
-   }
+    liveConsultationManager.onInviteeInLiveConsultation
+        .addListener(onJoinLiveConsultation);
+  }
 
-     /// 会诊过程中取消呼叫
+  /// 会诊过程中取消呼叫
   static void onCancelInvitingConsultation(Object sender, LiveConsultation e) {
     if (e.userCode != Storage.user.userCode) {
       return;
@@ -46,7 +51,7 @@ class ConsultationPopup{
       _timer?.resetTimer();
       Get.close(1);
     }
-  } 
+  }
 
   /// 会诊开始前取消呼叫
   static void onCancelConsultation(Object sender, LiveConsultation e) {
@@ -58,20 +63,20 @@ class ConsultationPopup{
     }
   }
 
-     ///接受会诊弹窗
+  ///接受会诊弹窗
   static Future<void> onInviteLiveConsultation(
       Object sender, LiveConsultation e) async {
     //if (_isPlaying) {
     //  _stopTimer = true;
     //  _isPlaying = false;
     //  _flutterSound.stopPlayer();
-     // _timer?.resetTimer();
-     // router.back();
+    // _timer?.resetTimer();
+    // router.back();
     //}
     _requestDialogAsync(e);
   }
 
-    ///加入会诊弹窗
+  ///加入会诊弹窗
   static void onJoinLiveConsultation(Object sender, LiveConsultation e) {
     if (_isPlaying) {
       _stopTimer = true;
@@ -83,9 +88,10 @@ class ConsultationPopup{
     _requestDialogAsync(e, isJoin: true);
   }
 
-  static Future<void> _requestDialogAsync(LiveConsultation e, {bool isJoin = false}) async {
-      _timer ??= PopupTimer();
-      _timer!.startTimer(onTimerComplete: () {
+  static Future<void> _requestDialogAsync(LiveConsultation e,
+      {bool isJoin = false}) async {
+    _timer ??= PopupTimer();
+    _timer!.startTimer(onTimerComplete: () {
       _timer?.resetTimer();
       Get.close(1);
     });
@@ -96,24 +102,22 @@ class ConsultationPopup{
         _isPlaying = true;
       });
 
-      await Get.dialog(                           
-               ConsultationRequestDialog(
-                (){
-                   _stopTimer = true;
-                   _isPlaying = false;
-                   _timer?.resetTimer();
-                   _flutterSound.stopPlayer();
-                }, e, isJoin
-               ),
-               barrierDismissible: false
-             );  
-      
+      await Get.dialog(
+          ConsultationRequestDialog(() {
+            _stopTimer = true;
+            _isPlaying = false;
+            _timer?.resetTimer();
+            _flutterSound.stopPlayer();
+          }, e, isJoin),
+          barrierDismissible: false);
+
       //if (isPc) {
       //  Get.find<FWebviewInteractiveController>().onDialogDispose();
       //}
     } catch (e) {
       _isPlaying = false;
-      await loggerAsyn(FISDeviceLogCategory.Error,'ConsultationPopup _requestDialogAsync erro: $e');
+      await loggerAsyn(FISDeviceLogCategory.Error,
+          'ConsultationPopup _requestDialogAsync erro: $e');
     }
     _stopTimer = true;
     _isPlaying = false;
@@ -121,7 +125,7 @@ class ConsultationPopup{
     _flutterSound.stopPlayer();
   }
 
-    //播放铃声
+  //播放铃声
   static void _startPlayer(FlutterSoundPlayer flutterSound, Uint8List buffer) {
     _stopTimer = false;
     flutterSound.openPlayer();
@@ -142,4 +146,4 @@ class ConsultationPopup{
       },
     );
   }
-}
+}

+ 9 - 9
lib/report/pdf/pdfresourcescache.dart

@@ -12,16 +12,17 @@ import 'package:flyinsonolite/reportinfo/rt_table_info.dart';
 import 'package:flyinsonolite/reportinfo/static_image_info.dart';
 import 'package:pdf/widgets.dart' as pw;
 
-class PDFResourcesCache{
+class PDFResourcesCache {
   static const int C_CACHELENGTH = 100;
   static String currentPDFFileKey = "";
   static final Map<String, pw.Font> pdfCustomFonts = <String, pw.Font>{};
-  static final Map<String, pw.MemoryImage> _pdfCloudImages = <String, pw.MemoryImage>{};
+  static final Map<String, pw.MemoryImage> _pdfCloudImages =
+      <String, pw.MemoryImage>{};
   static final Map<String, Uint8List> _pdfDocs = <String, Uint8List>{};
   static Future<Uint8List?> Function(String fileName)? cacheGet;
   static Future<bool> Function(String fileName, Uint8List file)? cacheSave;
-  
-    ///清空PDF缓存
+
+  ///清空PDF缓存
   static void clearCachedPDF() {
     _pdfDocs.clear();
   }
@@ -36,7 +37,7 @@ class PDFResourcesCache{
     Uint8List? pwFontBytes =
         cacheGet == null ? null : await cacheGet?.call(fontName);
     if (pwFontBytes == null) {
-      var fontBytes = await rootBundle.load('lib/fonts/$fontName');
+      var fontBytes = await rootBundle.load('assets/fonts/$fontName');
       var pwFont = pw.Font.ttf(fontBytes);
       pdfCustomFonts.addEntries(<String, pw.Font>{fontKey: pwFont}.entries);
       if (cacheSave != null) {
@@ -132,7 +133,6 @@ class PDFResourcesCache{
     }
   }
 
-
   static _compressStaticImage(StaticImageInfo imageInfo) async {
     Uint8List bytes = const Base64Decoder().convert(imageInfo.source!);
     var memoryImage = pw.MemoryImage(bytes);
@@ -164,14 +164,14 @@ class PDFResourcesCache{
     return _pdfCloudImages[fileToken];
   }
 
-    ///获取当前缓存PDF二进制文件
+  ///获取当前缓存PDF二进制文件
   static Uint8List? getCachedPDFBinarys() {
     return _pdfDocs[currentPDFFileKey];
   }
 
-    ///缓存生成的PDF文件
+  ///缓存生成的PDF文件
   static void cachePDFBinarys(Uint8List pdfBinary) {
     _pdfDocs
         .addEntries(<String, Uint8List>{currentPDFFileKey: pdfBinary}.entries);
   }
-}
+}

+ 46 - 42
lib/utils.dart

@@ -1,5 +1,4 @@
-
-  import 'dart:convert';
+import 'dart:convert';
 import 'dart:math';
 
 import 'package:fis_common/env/env.dart';
@@ -8,12 +7,14 @@ import 'package:fis_jsonrpc/rpc.dart';
 import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 
-ImageProvider<Object> buildUserAvatarProvider(String? headImgUrl, {bool isUS=false}) {
-  var localUrl=isUS?"lib/images/mock_terminal.png":"lib/images/avatar_man.png";
+ImageProvider<Object> buildUserAvatarProvider(String? headImgUrl,
+    {bool isUS = false}) {
+  var localUrl =
+      isUS ? "assets/images/mock_terminal.png" : "assets/images/avatar_man.png";
   ImageProvider child;
   headImgUrl.isNullOrEmpty
-    ? child = AssetImage(localUrl)
-    : child = NetworkImage(headImgUrl!);
+      ? child = AssetImage(localUrl)
+      : child = NetworkImage(headImgUrl!);
   return child;
 }
 
@@ -22,44 +23,47 @@ ImageProvider<Object> buildUserAvatarProvider(String? headImgUrl, {bool isUS=fal
 /// iOS/Android 默认移动端
 /// Windows 默认桌面端
 /// 纯Web根据宽度判断
-bool get kIsMobile => FPlatform.isAndroid || FPlatform.isIOS || FPlatform.isPureWeb && Get.width < 550;
+bool get kIsMobile =>
+    FPlatform.isAndroid ||
+    FPlatform.isIOS ||
+    FPlatform.isPureWeb && Get.width < 550;
 
-  ///获取输出高度
-  double getVideoDeviceInfoHeight(
-      {VideoDeviceSourceTypeEnum videoDeviceSourceType =
-          VideoDeviceSourceTypeEnum.Desktop,
-      required List<VideoDeviceOutputInfo> videoDeviceInfos}) {
-    var device = videoDeviceInfos.firstWhere(
-        (element) => element.videoDeviceSourceType == videoDeviceSourceType);
-    return device.outputHeight.toDouble();
-  }
+///获取输出高度
+double getVideoDeviceInfoHeight(
+    {VideoDeviceSourceTypeEnum videoDeviceSourceType =
+        VideoDeviceSourceTypeEnum.Desktop,
+    required List<VideoDeviceOutputInfo> videoDeviceInfos}) {
+  var device = videoDeviceInfos.firstWhere(
+      (element) => element.videoDeviceSourceType == videoDeviceSourceType);
+  return device.outputHeight.toDouble();
+}
 
-  ///获取输出宽度
-  double getVideoDeviceInfoWidth(
-      {VideoDeviceSourceTypeEnum videoDeviceSourceType =
-          VideoDeviceSourceTypeEnum.Desktop,
-      required List<VideoDeviceOutputInfo> videoDeviceInfos}) {
-    var device = videoDeviceInfos.firstWhere(
-        (element) => element.videoDeviceSourceType == videoDeviceSourceType);
-    return device.outputWidth.toDouble();
-  }
+///获取输出宽度
+double getVideoDeviceInfoWidth(
+    {VideoDeviceSourceTypeEnum videoDeviceSourceType =
+        VideoDeviceSourceTypeEnum.Desktop,
+    required List<VideoDeviceOutputInfo> videoDeviceInfos}) {
+  var device = videoDeviceInfos.firstWhere(
+      (element) => element.videoDeviceSourceType == videoDeviceSourceType);
+  return device.outputWidth.toDouble();
+}
 
-  String generateRandom([int length = 16]) {
-    final Random random = Random.secure();
-    var values = List<int>.generate(length, (i) => random.nextInt(256));
-    return base64Url.encode(values).substring(0, length);
-  }
+String generateRandom([int length = 16]) {
+  final Random random = Random.secure();
+  var values = List<int>.generate(length, (i) => random.nextInt(256));
+  return base64Url.encode(values).substring(0, length);
+}
 
-  bool truthful(value) {
-    if (value == null) {
-      return false;
-    }
-    if (value == true ||
-        value == 'true' ||
-        value == 1 ||
-        value == '1' ||
-        value.toString().toLowerCase() == 'yes') {
-      return true;
-    }
+bool truthful(value) {
+  if (value == null) {
     return false;
-  }
+  }
+  if (value == true ||
+      value == 'true' ||
+      value == 1 ||
+      value == '1' ||
+      value.toString().toLowerCase() == 'yes') {
+    return true;
+  }
+  return false;
+}

+ 8 - 90
pubspec.lock

@@ -5,7 +5,6 @@ packages:
     dependency: transitive
     description:
       name: archive
-      sha256: "0c8368c9b3f0abbc193b9d6133649a614204b528982bebc7026372d61677ce3a"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.3.7"
@@ -13,7 +12,6 @@ packages:
     dependency: transitive
     description:
       name: args
-      sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.4.1"
@@ -21,7 +19,6 @@ packages:
     dependency: transitive
     description:
       name: asn1lib
-      sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.4.0"
@@ -29,15 +26,13 @@ packages:
     dependency: transitive
     description:
       name: async
-      sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.10.0"
+    version: "2.9.0"
   barcode:
     dependency: transitive
     description:
       name: barcode
-      sha256: "789f898eef0bd88312470bdb2cc996f895ad7dd5f89e9adde84b204546a90b45"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.2.4"
@@ -45,15 +40,13 @@ packages:
     dependency: transitive
     description:
       name: boolean_selector
-      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.1"
+    version: "2.1.0"
   characters:
     dependency: transitive
     description:
       name: characters
-      sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.1"
@@ -61,7 +54,6 @@ packages:
     dependency: transitive
     description:
       name: charcode
-      sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.1"
@@ -69,7 +61,6 @@ packages:
     dependency: transitive
     description:
       name: clock
-      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.1"
@@ -77,15 +68,13 @@ packages:
     dependency: transitive
     description:
       name: collection
-      sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.17.0"
+    version: "1.16.0"
   convert:
     dependency: transitive
     description:
       name: convert
-      sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.1"
@@ -93,7 +82,6 @@ packages:
     dependency: "direct main"
     description:
       name: crypto
-      sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.0.2"
@@ -101,7 +89,6 @@ packages:
     dependency: transitive
     description:
       name: csslib
-      sha256: b36c7f7e24c0bdf1bf9a3da461c837d1de64b9f8beb190c9011d8c72a3dfd745
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.17.2"
@@ -118,7 +105,6 @@ packages:
     dependency: "direct main"
     description:
       name: dio
-      sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.0.6"
@@ -126,7 +112,6 @@ packages:
     dependency: transitive
     description:
       name: encrypt
-      sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "5.0.1"
@@ -134,7 +119,6 @@ packages:
     dependency: transitive
     description:
       name: fake_async
-      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.1"
@@ -142,7 +126,6 @@ packages:
     dependency: transitive
     description:
       name: ffi
-      sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.2"
@@ -150,7 +133,6 @@ packages:
     dependency: transitive
     description:
       name: file
-      sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "6.1.4"
@@ -217,7 +199,6 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_easyloading
-      sha256: "9b43cf38ef9fddcd0fd1b7821ea9d80b494484e3522383b76e7bf6da67ebf8b9"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.0.3"
@@ -225,7 +206,6 @@ packages:
     dependency: "direct dev"
     description:
       name: flutter_lints
-      sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.1"
@@ -238,7 +218,6 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_sound
-      sha256: "090a4694b11ecc744c2010621c4ffc5fe7c3079d304ea014961a72c7b72cfe6c"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "9.2.13"
@@ -246,7 +225,6 @@ packages:
     dependency: transitive
     description:
       name: flutter_sound_platform_interface
-      sha256: "4537eaeb58a32748c42b621ad6116f7f4c6ee0a8d6ffaa501b165fe1c9df4753"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "9.2.13"
@@ -254,7 +232,6 @@ packages:
     dependency: transitive
     description:
       name: flutter_sound_web
-      sha256: ad4ca92671a1879e1f613e900bbbdb8170b20d57d1e4e6363018fe56b055594f
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "9.2.13"
@@ -262,7 +239,6 @@ packages:
     dependency: transitive
     description:
       name: flutter_spinkit
-      sha256: b39c753e909d4796906c5696a14daf33639a76e017136c8d82bf3e620ce5bb8e
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "5.2.0"
@@ -280,7 +256,6 @@ packages:
     dependency: "direct main"
     description:
       name: get
-      sha256: "2ba20a47c8f1f233bed775ba2dd0d3ac97b4cf32fc17731b3dfc672b06b0e92a"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.6.5"
@@ -288,7 +263,6 @@ packages:
     dependency: transitive
     description:
       name: html
-      sha256: "58e3491f7bf0b6a4ea5110c0c688877460d1a6366731155c4a4580e7ded773e8"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.15.3"
@@ -296,7 +270,6 @@ packages:
     dependency: "direct main"
     description:
       name: http
-      sha256: "2ed163531e071c2c6b7c659635112f24cb64ecbebf6af46b550d536c0b1aa112"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.13.4"
@@ -304,7 +277,6 @@ packages:
     dependency: transitive
     description:
       name: http_parser
-      sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.0.2"
@@ -312,7 +284,6 @@ packages:
     dependency: transitive
     description:
       name: image
-      sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.3.0"
@@ -320,7 +291,6 @@ packages:
     dependency: transitive
     description:
       name: image_crop_plus
-      sha256: "7b42b6549ab9f2c5601b290d1a99beeae864fd056391f661c72f2b5371a77242"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.6.1"
@@ -328,7 +298,6 @@ packages:
     dependency: "direct main"
     description:
       name: intl
-      sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.17.0"
@@ -336,15 +305,13 @@ packages:
     dependency: transitive
     description:
       name: js
-      sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.6.5"
+    version: "0.6.4"
   json_annotation:
     dependency: transitive
     description:
       name: json_annotation
-      sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.8.0"
@@ -352,7 +319,6 @@ packages:
     dependency: transitive
     description:
       name: lints
-      sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.1"
@@ -360,7 +326,6 @@ packages:
     dependency: "direct main"
     description:
       name: logger
-      sha256: "5076f09225f91dc49289a4ccb92df2eeea9ea01cf7c26d49b3a1f04c6a49eec1"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.1.0"
@@ -368,15 +333,13 @@ packages:
     dependency: transitive
     description:
       name: matcher
-      sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.12.13"
+    version: "0.12.12"
   material_color_utilities:
     dependency: transitive
     description:
       name: material_color_utilities
-      sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.2.0"
@@ -384,7 +347,6 @@ packages:
     dependency: transitive
     description:
       name: meta
-      sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.0"
@@ -392,7 +354,6 @@ packages:
     dependency: transitive
     description:
       name: nested
-      sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.0"
@@ -400,7 +361,6 @@ packages:
     dependency: transitive
     description:
       name: path
-      sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.8.2"
@@ -408,7 +368,6 @@ packages:
     dependency: transitive
     description:
       name: path_parsing
-      sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.1"
@@ -416,7 +375,6 @@ packages:
     dependency: transitive
     description:
       name: path_provider
-      sha256: cfdc261c62a7273be7e051b19d27e503927a40919932f790681042a038f3605d
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.2"
@@ -424,7 +382,6 @@ packages:
     dependency: transitive
     description:
       name: path_provider_linux
-      sha256: "2ae08f2216225427e64ad224a24354221c2c7907e448e6e0e8b57b1eb9f10ad1"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.10"
@@ -432,7 +389,6 @@ packages:
     dependency: transitive
     description:
       name: path_provider_macos
-      sha256: cd57cb98a30ce9d12fdd1896d9d3b0517ce689f942de6ccd2708cd39b3d18a7c
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.7"
@@ -440,7 +396,6 @@ packages:
     dependency: transitive
     description:
       name: path_provider_platform_interface
-      sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.6"
@@ -448,7 +403,6 @@ packages:
     dependency: transitive
     description:
       name: path_provider_windows
-      sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.6"
@@ -456,7 +410,6 @@ packages:
     dependency: "direct main"
     description:
       name: pdf
-      sha256: "10659b915e65832b106f6d1d213e09b789cc1f24bf282ee911e49db35b96be4d"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.8.4"
@@ -464,7 +417,6 @@ packages:
     dependency: "direct main"
     description:
       name: permission_handler
-      sha256: "33c6a1253d1f95fd06fa74b65b7ba907ae9811f9d5c1d3150e51417d04b8d6a8"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "10.2.0"
@@ -472,7 +424,6 @@ packages:
     dependency: transitive
     description:
       name: permission_handler_android
-      sha256: "2ffaf52a21f64ac9b35fe7369bb9533edbd4f698e5604db8645b1064ff4cf221"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "10.3.3"
@@ -480,7 +431,6 @@ packages:
     dependency: transitive
     description:
       name: permission_handler_apple
-      sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "9.1.4"
@@ -488,7 +438,6 @@ packages:
     dependency: transitive
     description:
       name: permission_handler_platform_interface
-      sha256: "7c6b1500385dd1d2ca61bb89e2488ca178e274a69144d26bbd65e33eae7c02a9"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.11.3"
@@ -496,7 +445,6 @@ packages:
     dependency: transitive
     description:
       name: permission_handler_windows
-      sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.1.3"
@@ -504,7 +452,6 @@ packages:
     dependency: transitive
     description:
       name: petitparser
-      sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "5.1.0"
@@ -512,7 +459,6 @@ packages:
     dependency: transitive
     description:
       name: platform
-      sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.0"
@@ -520,7 +466,6 @@ packages:
     dependency: transitive
     description:
       name: plugin_platform_interface
-      sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.4"
@@ -528,7 +473,6 @@ packages:
     dependency: transitive
     description:
       name: pointycastle
-      sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.7.3"
@@ -536,7 +480,6 @@ packages:
     dependency: transitive
     description:
       name: process
-      sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.2.4"
@@ -544,7 +487,6 @@ packages:
     dependency: transitive
     description:
       name: provider
-      sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "6.0.5"
@@ -552,7 +494,6 @@ packages:
     dependency: "direct main"
     description:
       name: qr
-      sha256: "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.0.1"
@@ -560,7 +501,6 @@ packages:
     dependency: transitive
     description:
       name: recase
-      sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.1.0"
@@ -568,7 +508,6 @@ packages:
     dependency: "direct main"
     description:
       name: shared_preferences
-      sha256: abce1248423109beb9ef6cb6536cbd06a676e3cf0d7a00a980b3bce793f35de0
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.5"
@@ -576,7 +515,6 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_linux
-      sha256: "71d6806d1449b0a9d4e85e0c7a917771e672a3d5dc61149cc9fac871115018e1"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.3.0"
@@ -584,7 +522,6 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_macos
-      sha256: "81b6a60b2d27020eb0fc41f4cebc91353047309967901a79ee8203e40c42ed46"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.5"
@@ -592,7 +529,6 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_platform_interface
-      sha256: "23b052f17a25b90ff2b61aad4cc962154da76fb62848a9ce088efe30d7c50ab1"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.3.0"
@@ -600,7 +536,6 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_web
-      sha256: "7347b194fb0bbeb4058e6a4e87ee70350b6b2b90f8ac5f8bd5b3a01548f6d33a"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.2.0"
@@ -608,7 +543,6 @@ packages:
     dependency: transitive
     description:
       name: shared_preferences_windows
-      sha256: f95e6a43162bce43c9c3405f3eb6f39e5b5d11f65fab19196cf8225e2777624d
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.3.0"
@@ -621,7 +555,6 @@ packages:
     dependency: transitive
     description:
       name: source_span
-      sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.9.1"
@@ -629,15 +562,13 @@ packages:
     dependency: transitive
     description:
       name: stack_trace
-      sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.11.0"
+    version: "1.10.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.1"
@@ -645,15 +576,13 @@ packages:
     dependency: transitive
     description:
       name: string_scanner
-      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.2.0"
+    version: "1.1.1"
   synchronized:
     dependency: transitive
     description:
       name: synchronized
-      sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.1.0"
@@ -670,7 +599,6 @@ packages:
     dependency: transitive
     description:
       name: term_glyph
-      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.2.1"
@@ -678,15 +606,13 @@ packages:
     dependency: transitive
     description:
       name: test_api
-      sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.4.16"
+    version: "0.4.14"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
-      sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.3.2"
@@ -694,7 +620,6 @@ packages:
     dependency: "direct main"
     description:
       name: universal_html
-      sha256: "5ff50b7c14d201421cf5230ec389a0591c4deb5c817c9d7ccca3b26fe5f31e34"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.0.8"
@@ -702,7 +627,6 @@ packages:
     dependency: transitive
     description:
       name: universal_io
-      sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.2.0"
@@ -710,7 +634,6 @@ packages:
     dependency: "direct main"
     description:
       name: uuid
-      sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.0.7"
@@ -718,7 +641,6 @@ packages:
     dependency: transitive
     description:
       name: vector_math
-      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.1.4"
@@ -735,7 +657,6 @@ packages:
     dependency: transitive
     description:
       name: web_socket_channel
-      sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "2.2.0"
@@ -743,7 +664,6 @@ packages:
     dependency: transitive
     description:
       name: win32
-      sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "4.1.4"
@@ -751,7 +671,6 @@ packages:
     dependency: transitive
     description:
       name: xdg_directories
-      sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "1.0.0"
@@ -759,7 +678,6 @@ packages:
     dependency: transitive
     description:
       name: xml
-      sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "6.1.0"

+ 3 - 5
pubspec.yaml

@@ -144,9 +144,7 @@ flutter:
   assets:
   # 引入assets/images目录下所有资源
      - assets/images/
-     - lib/images/
-     - lib/audio/
-     - lib/fonts/DroidSansFallback.ttf
+     - assets/audio/
   #   - images/a_dot_ham.jpeg
 
   # An image asset can refer to one or more resolution-specific "variants", see
@@ -163,10 +161,10 @@ flutter:
   fonts:
     - family: FISIcons
       fonts:
-        - asset: lib/icons/FISIcons.ttf
+        - asset: assets/icons/FISIcons.ttf
     - family: DroidSansFallback
       fonts:
-        - asset: lib/fonts/DroidSansFallback.ttf
+        - asset: assets/fonts/DroidSansFallback.ttf
   #       - asset: fonts/Schyler-Italic.ttf
   #         style: italic
   #   - family: Trajan Pro