├── .fvm
├── flutter_sdk
├── fvm_config.json
├── release
├── version
└── versions
│ └── 3.16.7
├── .fvmrc
├── .gitignore
├── .metadata
├── .vscode
├── launch.json
└── settings.json
├── LICENSE
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── flutter_templet_project
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v21
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── drawable
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-hdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ └── ic_launcher.png
│ │ │ ├── values-night-v31
│ │ │ └── styles.xml
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ ├── values-v31
│ │ │ └── styles.xml
│ │ │ └── values
│ │ │ └── styles.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── fastlane
│ ├── .env
│ ├── Fastfile
│ ├── Pluginfile
│ ├── README.md
│ ├── actions
│ │ ├── dingdingtalk_robot.rb
│ │ ├── dingslack_robot.rb
│ │ ├── git_last_log_dic.rb
│ │ ├── markdown_desc.rb
│ │ └── yaml_from_path.rb
│ ├── metadata
│ │ └── app_icon.jpg
│ └── report.xml
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── assets
├── avicii-waiting for love.mp3
├── data
│ ├── appInfo.json
│ ├── car_models.json
│ ├── china.json
│ ├── contacts.json
│ ├── kuan_rong.txt
│ └── poetry.json
├── images
│ ├── 2.0x
│ │ ├── avatar.png
│ │ ├── icon_appbar_back.png
│ │ ├── icon_appbar_back_white.png
│ │ ├── icon_delete.png
│ │ ├── icon_home_delete.png
│ │ ├── img_placeholder_empty.png
│ │ ├── img_placeholder_empty_one.png
│ │ ├── img_placeholder_offonline.png
│ │ ├── img_placeholder_search.png
│ │ ├── img_update.png
│ │ └── img_upload_placeholder.png
│ ├── 3.0x
│ │ ├── avatar.png
│ │ ├── icon_appbar_back.png
│ │ ├── icon_appbar_back_white.png
│ │ ├── icon_delete.png
│ │ ├── icon_home_delete.png
│ │ ├── img_placeholder_empty.png
│ │ ├── img_placeholder_empty_one.png
│ │ ├── img_placeholder_offonline.png
│ │ ├── img_placeholder_search.png
│ │ ├── img_update.png
│ │ └── img_upload_placeholder.png
│ ├── 404.png
│ ├── QRCode.png
│ ├── avatar.png
│ ├── avatar_female.png
│ ├── avatar_male.png
│ ├── avatar_team.png
│ ├── background_ocean.png
│ ├── bg.png
│ ├── bg_beach.jpg
│ ├── bg_chat_bubble_from.png
│ ├── bg_chat_bubble_to.png
│ ├── bg_color.jpg
│ ├── bg_glassmophism.png
│ ├── bg_horizontal_scroll.png
│ ├── bg_jiguang.png
│ ├── bg_mine.png
│ ├── bg_mk11.jpg
│ ├── bg_mountain.png
│ ├── bg_nfs.jpg
│ ├── bg_ocean.jpg
│ ├── bg_service.png
│ ├── canvas_draw_arc.png
│ ├── curve
│ │ ├── curve_bounce_in.gif
│ │ ├── curve_bounce_in_out.gif
│ │ ├── curve_bounce_out.gif
│ │ ├── curve_decelerate.gif
│ │ ├── curve_ease.gif
│ │ ├── curve_ease_in.gif
│ │ ├── curve_ease_in_back.gif
│ │ ├── curve_ease_in_circ.gif
│ │ ├── curve_ease_in_cubic.gif
│ │ ├── curve_ease_in_expo.gif
│ │ ├── curve_ease_in_out.gif
│ │ ├── curve_ease_in_out_back.gif
│ │ ├── curve_ease_in_out_circ.gif
│ │ ├── curve_ease_in_out_cubic.gif
│ │ ├── curve_ease_in_out_expo.gif
│ │ ├── curve_ease_in_out_quad.gif
│ │ ├── curve_ease_in_out_quart.gif
│ │ ├── curve_ease_in_out_quint.gif
│ │ ├── curve_ease_in_out_sine.gif
│ │ ├── curve_ease_in_quad.gif
│ │ ├── curve_ease_in_quart.gif
│ │ ├── curve_ease_in_quint.gif
│ │ ├── curve_ease_in_sine.gif
│ │ ├── curve_ease_out.gif
│ │ ├── curve_ease_out_back.gif
│ │ ├── curve_ease_out_circ.gif
│ │ ├── curve_ease_out_cubic.gif
│ │ ├── curve_ease_out_expo.gif
│ │ ├── curve_ease_out_quad.gif
│ │ ├── curve_ease_out_quart.gif
│ │ ├── curve_ease_out_quint.gif
│ │ ├── curve_ease_out_sine.gif
│ │ ├── curve_elastic_in.gif
│ │ ├── curve_elastic_in_out.gif
│ │ ├── curve_elastic_out.gif
│ │ ├── curve_fast_out_slow_in.gif
│ │ ├── curve_flipped.gif
│ │ ├── curve_interval.gif
│ │ ├── curve_linear.gif
│ │ ├── curve_sawtooth.gif
│ │ ├── curve_slow_middle.gif
│ │ └── curve_threshold.gif
│ ├── dart3.png
│ ├── dart3_one.jpeg
│ ├── floating.png
│ ├── flutter.jpg
│ ├── flutter.webp
│ ├── flutter_key.webp
│ ├── flutter_logo.png
│ ├── icon_account.png
│ ├── icon_add_circle.png
│ ├── icon_adverse_event.png
│ ├── icon_again_shopping_cart.png
│ ├── icon_appbar_back.png
│ ├── icon_appbar_back_white.png
│ ├── icon_apple_bg_grey.png
│ ├── icon_arranged.png
│ ├── icon_arrow_down.png
│ ├── icon_arrow_left.png
│ ├── icon_arrow_right.png
│ ├── icon_arrow_up.png
│ ├── icon_audio_visit_evaluate.png
│ ├── icon_camera.png
│ ├── icon_check_box_selected.png
│ ├── icon_check_box_unselected.png
│ ├── icon_check_circle_selected.png
│ ├── icon_check_circle_selected_one.png
│ ├── icon_check_circle_unselected.png
│ ├── icon_check_circle_unselected_one.png
│ ├── icon_chinese_medicine.png
│ ├── icon_circle_half.png
│ ├── icon_clear.png
│ ├── icon_close_60.png
│ ├── icon_copy.png
│ ├── icon_corner.png
│ ├── icon_dart3.png
│ ├── icon_date_calender.png
│ ├── icon_delete.png
│ ├── icon_dowload.png
│ ├── icon_edit.png
│ ├── icon_emoji_circle.png
│ ├── icon_expand_arrow_down.png
│ ├── icon_expand_arrow_up.png
│ ├── icon_eye_close.png
│ ├── icon_eye_open.png
│ ├── icon_file_excel.png
│ ├── icon_file_pdf.png
│ ├── icon_file_ppt.png
│ ├── icon_file_unknow.png
│ ├── icon_file_word.png
│ ├── icon_filter.png
│ ├── icon_heart.png
│ ├── icon_heart_border.png
│ ├── icon_heart_half.png
│ ├── icon_hi.png
│ ├── icon_home_delete.png
│ ├── icon_inquiry_pay_selected.png
│ ├── icon_inquiry_pay_unselected.png
│ ├── icon_inquiry_rights_selected.png
│ ├── icon_inquiry_rights_unselected.png
│ ├── icon_jc.png
│ ├── icon_json_file.png
│ ├── icon_left_voice_1.png
│ ├── icon_left_voice_2.png
│ ├── icon_left_voice_3.png
│ ├── icon_lock.png
│ ├── icon_medical_appliance.png
│ ├── icon_member_remove.png
│ ├── icon_member_voice.png
│ ├── icon_member_voice_disable.png
│ ├── icon_move_down.png
│ ├── icon_move_up.png
│ ├── icon_ocr_bar.png
│ ├── icon_pause.png
│ ├── icon_play.png
│ ├── icon_play_video.png
│ ├── icon_postmark_approved.png
│ ├── icon_postmark_cancellation.png
│ ├── icon_postmark_finished.png
│ ├── icon_postmark_invalid.png
│ ├── icon_postmark_refused.png
│ ├── icon_postmark_unused.png
│ ├── icon_postmark_used.png
│ ├── icon_postmark_wait_approve.png
│ ├── icon_postmark_wait_notarize.png
│ ├── icon_qr.png
│ ├── icon_quote.png
│ ├── icon_rec_cat.png
│ ├── icon_reviewed.png
│ ├── icon_revoke.png
│ ├── icon_scan.png
│ ├── icon_search.png
│ ├── icon_segment_collect.png
│ ├── icon_segment_emoji.png
│ ├── icon_segmented_control_carer_gray.png
│ ├── icon_segmented_control_carer_white.png
│ ├── icon_segmented_control_doctor_gray.png
│ ├── icon_segmented_control_doctor_white.png
│ ├── icon_skipping.gif
│ ├── icon_specimen_collection.png
│ ├── icon_subject_diary.png
│ ├── icon_switch.png
│ ├── icon_time_long.png
│ ├── icon_time_long_one.png
│ ├── icon_trash.png
│ ├── icon_trash_one.png
│ ├── icon_upload.png
│ ├── icon_upload_one.png
│ ├── icon_user_add.png
│ ├── icon_user_del.png
│ ├── icon_video_visit_evaluate.png
│ ├── icon_voice_circle.png
│ ├── icon_wait_reply.png
│ ├── icon_wechat.png
│ ├── icon_wechat_bg_green.png
│ ├── image_header_bg2.webp
│ ├── img_404.png
│ ├── img_flutter_3_10.png
│ ├── img_flutter_3_10.webp
│ ├── img_placeholder.png
│ ├── img_placeholder_doctor.png
│ ├── img_placeholder_empty.png
│ ├── img_placeholder_empty_one.png
│ ├── img_placeholder_offonline.png
│ ├── img_placeholder_patient.png
│ ├── img_placeholder_search.png
│ ├── img_sound_overlay_bg_recording.png
│ ├── img_sound_overlay_bottom.png
│ ├── img_sound_overlay_bottom2.png
│ ├── img_sound_overlay_bottom_cancel.png
│ ├── img_sound_overlay_button.png
│ ├── img_sound_overlay_button_cancel.png
│ ├── img_sound_recording.gif
│ ├── img_update.png
│ ├── img_upload_placeholder.png
│ ├── js_cover.png
│ ├── logo_glassmophism.png
│ ├── package_delivery_tracking.png
│ ├── process_timeline.png
│ ├── pub_dev_logo.png
│ ├── rec_left_flot_btn.gif
│ ├── sha_qiu.png
│ ├── shan.png
│ ├── soaring_logo.png
│ ├── soaring_logo_two.png
│ ├── timeline_status.png
│ └── weiqi.png
└── sample.mp3
├── buildApk.sh
├── buildIos.sh
├── devtools_options.yaml
├── flutter_native_splash.yaml
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ ├── Contents.json
│ │ ├── LaunchBackground.imageset
│ │ │ ├── Contents.json
│ │ │ └── background.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ ├── Runner-Bridging-Header.h
│ └── Runner.entitlements
├── build
│ └── Pods.build
│ │ └── Release-iphonesimulator
│ │ ├── FMDB.build
│ │ └── dgph
│ │ ├── Flutter.build
│ │ └── dgph
│ │ ├── Pods-Runner.build
│ │ └── dgph
│ │ ├── Toast.build
│ │ └── dgph
│ │ ├── flutter_boost.build
│ │ └── dgph
│ │ ├── fluttertoast.build
│ │ └── dgph
│ │ ├── integration_test.build
│ │ └── dgph
│ │ ├── path_provider.build
│ │ └── dgph
│ │ ├── path_provider_ios.build
│ │ └── dgph
│ │ ├── permission_handler.build
│ │ └── dgph
│ │ ├── share.build
│ │ └── dgph
│ │ ├── sqflite.build
│ │ └── dgph
│ │ ├── url_launcher.build
│ │ └── dgph
│ │ ├── url_launcher_ios.build
│ │ └── dgph
│ │ └── webview_flutter_wkwebview.build
│ │ └── dgph
└── fastlane
│ ├── .env
│ ├── Appfile
│ ├── Deliverfile
│ ├── Fastfile
│ ├── Pluginfile
│ ├── README.md
│ ├── actions
│ ├── clear_cache_files.rb
│ ├── dingdingtalk_robot.rb
│ ├── dingslack_robot.rb
│ ├── git_last_log_dic.rb
│ ├── markdown_desc.rb
│ ├── plist_from_path.rb
│ ├── project_name.rb
│ ├── update_build.rb
│ └── yaml_from_path.rb
│ ├── metadata
│ └── app_icon.jpg
│ └── report.xml
├── lib
├── APPThemeSettings.dart
├── Language
│ └── Property.dart
├── LocationsDelegate.dart
├── basicWidget
│ ├── CircleLayout.dart
│ ├── CircleSectorProgressIndicator.dart
│ ├── EnhanceTab
│ │ ├── enhance_tab_bar.dart
│ │ └── enhance_tab_bar_demo.dart
│ ├── ExpandButtons
│ │ ├── expand_icons.dart
│ │ └── expand_layout.dart
│ ├── FloatingActionButtonLocationOffset.dart
│ ├── GradientBoundPainter.dart
│ ├── NRequestBox
│ │ ├── n_request_box.dart
│ │ └── n_request_box_demo.dart
│ ├── NTree
│ │ ├── NTree.dart
│ │ └── NTreeDemo.dart
│ ├── PickerUtil.dart
│ ├── PromptBuilder.dart
│ ├── RectProgressClipper.dart
│ ├── TextInputFormatter
│ │ ├── block_text_input_formatter.dart
│ │ ├── decimal_input_formatter.dart
│ │ ├── fraction_digits_text_input_formatter.dart
│ │ ├── insert_blank_text_input_formatter.dart
│ │ └── int_clamp_text_input_formatter.dart
│ ├── TicketUI.dart
│ ├── ToastWidget.dart
│ ├── WheelPainter.dart
│ ├── after_layout_builder.dart
│ ├── animated_group.dart
│ ├── app_update_card.dart
│ ├── app_upgrade_view.dart
│ ├── asset_image_stretch.dart
│ ├── chioce_list.dart
│ ├── chioce_wrap.dart
│ ├── custom_swiper.dart
│ ├── custome_animated.dart
│ ├── dashed_decoration.dart
│ ├── drag_destination_view.dart
│ ├── enhance
│ │ ├── bottom_navigation_bar
│ │ │ └── n_bottom_navigation_bar.dart
│ │ ├── en_app_bar
│ │ │ └── en_app_bar.dart
│ │ ├── en_sliding_segmented_control
│ │ │ ├── en_sliding_segmented_control.dart
│ │ │ ├── n_sliding_segmented_control.dart
│ │ │ └── n_sliding_segmented_page_view.dart
│ │ ├── enhance_dialog_sheet
│ │ │ ├── en_bottom_sheet.dart
│ │ │ ├── en_dialog.dart
│ │ │ ├── en_display_feature_sub_screen.dart
│ │ │ └── en_routes.dart
│ │ ├── enhance_expansion
│ │ │ └── en_expansion_tile.dart
│ │ └── enhance_stepper
│ │ │ └── enhance_stepper.dart
│ ├── error_custom_widget.dart
│ ├── fade_builder.dart
│ ├── form
│ │ ├── ae_address_choose_item.dart
│ │ ├── ae_card.dart
│ │ ├── ae_choose_item.dart
│ │ ├── ae_date_choose_item.dart
│ │ ├── ae_horizal_choose_item.dart
│ │ ├── ae_horizal_choose_mutil_item.dart
│ │ ├── ae_input_item.dart
│ │ ├── ae_judge_item.dart
│ │ ├── ae_patient_card.dart
│ │ ├── ae_questionnaire_card.dart
│ │ ├── ae_section_header.dart
│ │ ├── ae_single_choose_item.dart
│ │ ├── ae_textfiled.dart
│ │ ├── ae_time_choose_item.dart
│ │ ├── ae_time_line.dart
│ │ ├── ae_upload_document_item.dart
│ │ └── ae_upload_image_item.dart
│ ├── horizontal_cell.dart
│ ├── hud
│ │ ├── CirclePulseLoadingWidget.dart
│ │ ├── ToastDialog.dart
│ │ └── progresshud.dart
│ ├── im_group_avatar.dart
│ ├── im_reciple_bottom_sheet.dart
│ ├── im_sound_record_bar.dart
│ ├── im_sound_recording_page.dart
│ ├── im_textfield_bar.dart
│ ├── im_tip_bell_cell.dart
│ ├── inner_shadow.dart
│ ├── keep_alive_wrapper.dart
│ ├── layout_log_print.dart
│ ├── list_subtitle_cell.dart
│ ├── marquee_widget.dart
│ ├── merge_images_widget.dart
│ ├── n_account_sheet.dart
│ ├── n_account_sheet_new.dart
│ ├── n_adaptive_text.dart
│ ├── n_alert_dialog.dart
│ ├── n_alignment_drawer.dart
│ ├── n_app_bar.dart
│ ├── n_app_bar_them_change.dart
│ ├── n_autocomplete_options_view.dart
│ ├── n_avatar_badge.dart
│ ├── n_avatar_group.dart
│ ├── n_badge.dart
│ ├── n_blur_view.dart
│ ├── n_box.dart
│ ├── n_box_border.dart
│ ├── n_button.dart
│ ├── n_button_cancel.dart
│ ├── n_button_confirm.dart
│ ├── n_cancel_and_confirm_bar.dart
│ ├── n_choic_bottom_bar.dart
│ ├── n_choice_box.dart
│ ├── n_choice_box_horizontal.dart
│ ├── n_choice_box_one.dart
│ ├── n_choice_expansion.dart
│ ├── n_choice_expansion_of_model.dart
│ ├── n_choice_filter_box.dart
│ ├── n_chrome_segment.dart
│ ├── n_collection_nav_widget.dart
│ ├── n_collection_view.dart
│ ├── n_context_menu.dart
│ ├── n_context_menu_region.dart
│ ├── n_convert_view.dart
│ ├── n_cross_fade.dart
│ ├── n_cross_notice.dart
│ ├── n_cupertino_picker_list_view.dart
│ ├── n_dash_decoration.dart
│ ├── n_dash_line.dart
│ ├── n_date_picker.dart
│ ├── n_date_start_end.dart
│ ├── n_drop_menu_filter_bar.dart
│ ├── n_drop_menu_filter_section_bar.dart
│ ├── n_ensure_visible.dart
│ ├── n_expand_text.dart
│ ├── n_expand_text_one.dart
│ ├── n_expand_text_vertical.dart
│ ├── n_expand_textfield.dart
│ ├── n_expansion_fade.dart
│ ├── n_expansion_menu.dart
│ ├── n_fade_page_route.dart
│ ├── n_fade_transition.dart
│ ├── n_fade_transition_builder.dart
│ ├── n_filter.dart
│ ├── n_filter_button.dart
│ ├── n_filter_drop_box.dart
│ ├── n_filter_section.dart
│ ├── n_flex_separated.dart
│ ├── n_flexible_cell.dart
│ ├── n_flexible_space_bar.dart
│ ├── n_floating_button.dart
│ ├── n_footer.dart
│ ├── n_footer_button_bar.dart
│ ├── n_four_corner.dart
│ ├── n_future_builder.dart
│ ├── n_grid_view.dart
│ ├── n_horizontal_scroll_widget.dart
│ ├── n_image_indicator.dart
│ ├── n_image_loading.dart
│ ├── n_image_preview.dart
│ ├── n_indicator_point.dart
│ ├── n_inner_shadow.dart
│ ├── n_line_progress_indicator.dart
│ ├── n_line_segment_view.dart
│ ├── n_list_view_segment_control.dart
│ ├── n_long_press_menu.dart
│ ├── n_menu_anchor.dart
│ ├── n_menu_anchor_for_image.dart
│ ├── n_network_image.dart
│ ├── n_network_online.dart
│ ├── n_order_num_unit.dart
│ ├── n_origin_sheet.dart
│ ├── n_overlay.dart
│ ├── n_page_view.dart
│ ├── n_painter_arc.dart
│ ├── n_pair.dart
│ ├── n_pick_request_list_box.dart
│ ├── n_pick_users_box.dart
│ ├── n_picker_choice_view.dart
│ ├── n_picker_list_view.dart
│ ├── n_picker_tool_bar.dart
│ ├── n_pinned_tab_bar_page.dart
│ ├── n_placeholder.dart
│ ├── n_point_indicator.dart
│ ├── n_pop_view_box.dart
│ ├── n_popup_route.dart
│ ├── n_refresh_view.dart
│ ├── n_resize.dart
│ ├── n_resize_switch.dart
│ ├── n_scan_photo.dart
│ ├── n_search_bar.dart
│ ├── n_section_box.dart
│ ├── n_secure_keyboard_focus.dart
│ ├── n_segment_control_emoj_view.dart
│ ├── n_segment_control_emoji.dart
│ ├── n_selected_cell.dart
│ ├── n_shader_text.dart
│ ├── n_single_ticker_stateful_builder.dart
│ ├── n_size_transition.dart
│ ├── n_skeleton_item.dart
│ ├── n_skeleton_screen.dart
│ ├── n_slidable_delete_cell.dart
│ ├── n_slide_transition.dart
│ ├── n_slide_transition_builder.dart
│ ├── n_slider.dart
│ ├── n_sliver_decorated_box.dart
│ ├── n_sliver_persistent_header_delegate.dart
│ ├── n_sliver_section.dart
│ ├── n_sliver_section_list.dart
│ ├── n_split_view.dart
│ ├── n_swiper_gesture_detector.dart
│ ├── n_tab_bar_colored_box.dart
│ ├── n_tab_bar_indicator_fixed.dart
│ ├── n_tab_bar_page.dart
│ ├── n_tab_bar_page_custom.dart
│ ├── n_tab_bar_view.dart
│ ├── n_tab_page_view.dart
│ ├── n_tag_box.dart
│ ├── n_tag_box_new.dart
│ ├── n_target_follower.dart
│ ├── n_text.dart
│ ├── n_text_button.dart
│ ├── n_text_view.dart
│ ├── n_textfield.dart
│ ├── n_textfield_search.dart
│ ├── n_textfield_unit.dart
│ ├── n_third_login.dart
│ ├── n_ticket_clipper.dart
│ ├── n_ticket_divder.dart
│ ├── n_ticket_divider_painter.dart
│ ├── n_transition_builder.dart
│ ├── n_tween_transition.dart
│ ├── n_type_writer_text.dart
│ ├── n_user_privacy.dart
│ ├── n_webview_page.dart
│ ├── neumorphism_button.dart
│ ├── number_stepper.dart
│ ├── page_indicator_widget.dart
│ ├── picker_drug_box.dart
│ ├── radial_button.dart
│ ├── record_expand_text.dart
│ ├── responsive_column.dart
│ ├── scroll
│ │ ├── NCustomScrollBehavior.dart
│ │ ├── custom_page_controller.dart
│ │ ├── custom_page_view_scroll_physics.dart
│ │ └── custom_tab_controller.dart
│ ├── search_results_list_view.dart
│ ├── section_list_view.dart
│ ├── skeleton_item.dart
│ ├── sliver_decorate_box.dart
│ ├── steper_connector.dart
│ ├── theme
│ │ ├── n_button_theme.dart
│ │ └── n_search_theme.dart
│ ├── triangle_decoration.dart
│ ├── triangle_path.dart
│ ├── tween_animated_widget.dart
│ ├── upload
│ │ ├── asset_upload_box.dart
│ │ ├── asset_upload_box.md
│ │ ├── asset_upload_box_demo.dart
│ │ ├── asset_upload_button.dart
│ │ ├── asset_upload_config.dart
│ │ ├── asset_upload_model.dart
│ │ ├── image_service.dart
│ │ └── video_service.dart
│ ├── upload_button.dart
│ ├── upload_document
│ │ ├── asset_upload_document_box.dart
│ │ ├── asset_upload_document_box.md
│ │ ├── asset_upload_document_button.dart
│ │ └── asset_upload_document_model.dart
│ ├── upload_file
│ │ ├── n_file_upload_Item.dart
│ │ ├── n_file_upload_box.dart
│ │ ├── n_file_upload_handle.dart
│ │ ├── n_file_upload_model.dart
│ │ └── n_file_upload_pi.dart
│ ├── voice_animation_image.dart
│ ├── x_box_widget.dart
│ ├── x_collection_nav_widget.dart
│ └── x_horizontal_scroll_widget.dart
├── cache
│ ├── asset_cache_service.dart
│ ├── cache_controller.dart
│ ├── cache_service.dart
│ ├── file_browser_page.dart
│ ├── file_manager.dart
│ └── file_share.dart
├── enum
│ ├── ActivityType.dart
│ ├── DateFormatEnum.dart
│ ├── DateTimeFormat.dart
│ ├── FileType.dart
│ ├── RegExpSourceEnum.dart
│ ├── TIMMessageElemType.dart
│ ├── TIMMessageStatus.dart
│ ├── TIMSignalingActionType.dart
│ ├── operate_type.dart
│ └── path_provider_enum.dart
├── eventbus
│ ├── ValueChangedEvent.dart
│ └── event_bus_service.dart
├── extension
│ ├── alignment_ext.dart
│ ├── app_bar_ext.dart
│ ├── bool_ext.dart
│ ├── build_context_ext.dart
│ ├── button_ext.dart
│ ├── change_notifier_ext.dart
│ ├── clipboard_ext.dart
│ ├── color_ext.dart
│ ├── date_time_ext.dart
│ ├── ddlog.dart
│ ├── decoration_ext.dart
│ ├── dialog_ext.dart
│ ├── divider_ext.dart
│ ├── duration_ext.dart
│ ├── edge_insets_ext.dart
│ ├── editable_text_ext.dart
│ ├── enum_ext.dart
│ ├── file_ext.dart
│ ├── flex_ext.dart
│ ├── floating_action_button_location_ext.dart
│ ├── function_ext.dart
│ ├── future_ext.dart
│ ├── generic_comparable_ext.dart
│ ├── geometry_ext.dart
│ ├── getx_ext.dart
│ ├── image_ext.dart
│ ├── list_ext.dart
│ ├── list_nullable_ext.dart
│ ├── map_ext.dart
│ ├── media_query_ext.dart
│ ├── navigator_ext.dart
│ ├── num_ext.dart
│ ├── number_format.dart
│ ├── object_ext.dart
│ ├── orientation_ext.dart
│ ├── overlay_ext.dart
│ ├── page_controller_ext.dart
│ ├── platform_ext.dart
│ ├── proxy_box_ext.dart
│ ├── regexp_ext.dart
│ ├── rich_text_ext.dart
│ ├── route_ext.dart
│ ├── scroll_controller_ext.dart
│ ├── service_protocol_info_ext.dart
│ ├── snack_bar_ext.dart
│ ├── stack_ext.dart
│ ├── string_ext.dart
│ ├── system_channels_ext.dart
│ ├── system_chrome_ext.dart
│ ├── tab_ext.dart
│ ├── text_painter_ext.dart
│ ├── text_style_ext.dart
│ ├── timer_ext.dart
│ ├── type_util.dart
│ └── widget_ext.dart
├── main.dart
├── mixin
│ ├── BottomBouncingScrollPhysics.dart
│ ├── MyScrollPhysics.dart
│ ├── address_mixin.dart
│ ├── app_lifecycle_state_mixin.dart
│ ├── asset_picker_mixin.dart
│ ├── asset_resource_mixin.dart
│ ├── bottom_sheet_image_mixin.dart
│ ├── bottom_sheet_mixin.dart
│ ├── bottom_sheet_phrases_mixin.dart
│ ├── compress_image_mixin.dart
│ ├── create_file_mixin.dart
│ ├── cupertino_alert_dialog_mixin.dart
│ ├── debug_bottom_sheet_mixin.dart
│ ├── dialog_mixin.dart
│ ├── dialog_tag_select.dart
│ ├── equal_identical_mixin.dart
│ ├── expression_formula_mxin.dart
│ ├── file_picker_mixin.dart
│ ├── floating_button_mixin.dart
│ ├── overlay_mixin.dart
│ ├── photo_picker_mixin.dart
│ ├── safe_set_state_mixin.dart
│ ├── scroll_direction_mixin.dart
│ ├── selectable_mixin.dart
│ ├── sound_state_mixin.dart
│ └── timings_mixin.dart
├── model
│ ├── AppDetailRootModel.dart
│ ├── NPerson.dart
│ ├── RootModel.dart
│ ├── app_update_model.dart
│ ├── appstore_app_detail_root_model.dart
│ ├── cell_model.dart
│ ├── fake_data_model.dart
│ ├── git_repo_model.dart
│ ├── im_conversation_detail_model.dart
│ ├── im_msg_list_root_model.dart
│ ├── mock_data.dart
│ ├── notice_model.dart
│ ├── open_weather_model.dart
│ ├── order_model.dart
│ ├── repo_model.dart
│ ├── repo_model.g.dart
│ ├── repository.dart
│ ├── section_detail_model.dart
│ ├── selected_model.dart
│ ├── status_detail_model.dart
│ ├── student.dart
│ ├── tag_detail_model.dart
│ └── user_model.dart
├── network
│ ├── RequestConfig.dart
│ ├── RequestError.dart
│ ├── RequestManager.dart
│ ├── api
│ │ ├── tag_clear_api.dart
│ │ ├── tag_get_api.dart
│ │ ├── tag_list_api.dart
│ │ ├── tag_set_api.dart
│ │ └── token_refersh_api.dart
│ ├── base_request_api.dart
│ ├── controller
│ │ ├── tag_change_notifier.dart
│ │ └── tag_gex_controller.dart
│ ├── dio_ext.dart
│ ├── dio_upload_service.dart
│ ├── interceptors
│ │ ├── exception_interceptor.dart
│ │ ├── token_interceptor.dart
│ │ └── validate_interceptor.dart
│ ├── oss
│ │ ├── oss_auth_api.dart
│ │ ├── oss_auth_model.dart
│ │ └── oss_util.dart
│ └── proxy
│ │ └── dio_proxy.dart
├── pages
│ ├── IrregularClipperDemo.dart
│ ├── app_not_found_page.dart
│ ├── app_settings_page.dart
│ ├── app_tab_bar_controller.dart
│ ├── app_tab_page.dart
│ ├── app_user_center_page.dart
│ ├── demo
│ │ ├── APIConvertPage.dart
│ │ ├── APPForgetPwdPage.dart
│ │ ├── AbsorbPointerDemo.dart
│ │ ├── AfterLayoutDemo.dart
│ │ ├── AlertDialogDemo.dart
│ │ ├── AlertDialogTagSelectDemo.dart
│ │ ├── AlertSheetDemo.dart
│ │ ├── AlignmentDrawDemo.dart
│ │ ├── AnimatedBuilderDemo.dart
│ │ ├── AnimatedContainerDemo.dart
│ │ ├── AnimatedDemo.dart
│ │ ├── AnimatedGroupDemo.dart
│ │ ├── AnimatedListDemo.dart
│ │ ├── AnimatedListSample.dart
│ │ ├── AnimatedSizeDemo.dart
│ │ ├── AnimatedSizeDemoOne.dart
│ │ ├── AnimatedStaggerDemo.dart
│ │ ├── AnimatedSwitcherDemo.dart
│ │ ├── AnimatedWidgetDemo.dart
│ │ ├── ApiCreatePage.dart
│ │ ├── ApiCreateTemplet.dart
│ │ ├── AppBarDemo.dart
│ │ ├── AppDrawerMenuPage.dart
│ │ ├── AppLaunchPage.dart
│ │ ├── AppLifecycleStateObserverDemo.dart
│ │ ├── AppRouteAwareDemo.dart
│ │ ├── AppRouteAwareDemoOne.dart
│ │ ├── AppSandboxFileDirectory.dart
│ │ ├── AppWebViewDemo.dart
│ │ ├── AsyncDemo.dart
│ │ ├── AudioPlayerPageDemo.dart
│ │ ├── AutoLayoutDemo.dart
│ │ ├── AutocompleteDemo.dart
│ │ ├── AutofillGroupDemo.dart
│ │ ├── BackdropFilterDemo.dart
│ │ ├── BadgeDemo.dart
│ │ ├── BannerDemo.dart
│ │ ├── BatterLevelPage.dart
│ │ ├── BlurViewDemo.dart
│ │ ├── BorderDemo.dart
│ │ ├── BottomAppBarDemo.dart
│ │ ├── BottomSheetDemo.dart
│ │ ├── BoxConstraintsDemo.dart
│ │ ├── BoxDemo.dart
│ │ ├── BuilderDemo.dart
│ │ ├── ButtonStyleDemo.dart
│ │ ├── CalendarDatePickerDemo.dart
│ │ ├── CarouselSliderDemo.dart
│ │ ├── ChemotherapyRegimenDrugCaculator.dart
│ │ ├── ChipDemo.dart
│ │ ├── CirclePainter.dart
│ │ ├── ClipDemo.dart
│ │ ├── ColoredBoxDemo.dart
│ │ ├── ComponentMiddlePage.dart
│ │ ├── CompositedTransformTargetDemo.dart
│ │ ├── ContainerDemo.dart
│ │ ├── ContextMenuActionDemo.dart
│ │ ├── ContextMenuDemo.dart
│ │ ├── ConvertFlle.dart
│ │ ├── CupertinoFormDemo.dart
│ │ ├── CupertinoTabScaffoldDemo.dart
│ │ ├── CurvedNavigationBarDemo.dart
│ │ ├── CustomMultiChildLayoutDemo.dart
│ │ ├── CustomPainterPageDemo.dart
│ │ ├── CustomScrollBarDemo.dart
│ │ ├── CustomSingleChildLayoutDemo.dart
│ │ ├── CustomSwipperDemo.dart
│ │ ├── DashLineDemo.dart
│ │ ├── DataTableDemo.dart
│ │ ├── DateRangePickerDialogDemo.dart
│ │ ├── DateTimeDemo.dart
│ │ ├── DecoratedBoxTransitionDemo.dart
│ │ ├── DecorationDemo.dart
│ │ ├── DefaultTabControllerDemo.dart
│ │ ├── DevelopToolList.dart
│ │ ├── DialogChoiceChipDemo.dart
│ │ ├── DirectoryTestDemo.dart
│ │ ├── DismissibleDemo.dart
│ │ ├── DisplayFeatureDemo.dart
│ │ ├── DragAndDropDemo.dart
│ │ ├── DraggableDemo.dart
│ │ ├── DraggableScrollableSheetDemo.dart
│ │ ├── DrawCanvasDemo.dart
│ │ ├── DropBoxChoicDemo.dart
│ │ ├── DropBoxChoicDemoNew.dart
│ │ ├── DropBoxMutiRowChoicDemo.dart
│ │ ├── DropdownMenuDemo.dart
│ │ ├── EditableTextDemo.dart
│ │ ├── EmojiPage.dart
│ │ ├── ExpandIconDemo.dart
│ │ ├── ExpandIconDemoNew.dart
│ │ ├── ExpressionsCalulatorDemo.dart
│ │ ├── FaceDetectionPage.dart
│ │ ├── FilterDemo.dart
│ │ ├── FilterDemoOne.dart
│ │ ├── FittedBoxDemo.dart
│ │ ├── FlexDemo.dart
│ │ ├── FlexbleListViewPage.dart
│ │ ├── FlexibleDemo.dart
│ │ ├── FlexibleSpaceDemo.dart
│ │ ├── FloatingActionButtonDemo.dart
│ │ ├── FloatingButtonDemo.dart
│ │ ├── FloatingButtonDemoOne.dart
│ │ ├── FloatingButtonDemoThree.dart
│ │ ├── FloatingButtonDemoTwo.dart
│ │ ├── FlutterFFiTest.dart
│ │ ├── FlutterPickerUtilDemo.dart
│ │ ├── FlutterRingtonePlayerDemo.dart
│ │ ├── FormDemo.dart
│ │ ├── FractionallySizedBoxDemo.dart
│ │ ├── FutureBuilderDemo.dart
│ │ ├── GestureDetectorDemo.dart
│ │ ├── GetxControllerDemo.dart
│ │ ├── GetxRouteCreatePage.dart
│ │ ├── GexControllerTagDemo.dart
│ │ ├── GithubRepoDemo.dart
│ │ ├── GlobalIsolateDemo.dart
│ │ ├── GlowingOverscrollIndicatorDemo.dart
│ │ ├── GradientDemo.dart
│ │ ├── GradientOfRadialDemo.dart
│ │ ├── GridPaperDemo.dart
│ │ ├── GridViewDemo.dart
│ │ ├── HapticFeedbackDemo.dart
│ │ ├── HeroDemo.dart
│ │ ├── HitTestBehaviorDemo.dart
│ │ ├── HitTestDemo.dart
│ │ ├── HomeNavDemo.dart
│ │ ├── HorizontalCellDemo.dart
│ │ ├── HudProgressDemo.dart
│ │ ├── IconConvertPage.dart
│ │ ├── IgnorePointerDemo.dart
│ │ ├── ImChatPage.dart
│ │ ├── ImConversationPage.dart
│ │ ├── ImageBlendModeDemo.dart
│ │ ├── ImageStretchDemo.dart
│ │ ├── IndexedStackDemo.dart
│ │ ├── IndicatorDemo.dart
│ │ ├── InheritedWidgetDemo.dart
│ │ ├── InputDatePickerFormFieldDemo.dart
│ │ ├── InteractiveViewerDemo.dart
│ │ ├── IntrinsicHeightDemo.dart
│ │ ├── IteratorDemo.dart
│ │ ├── JsonToModelPage.dart
│ │ ├── KeyDemo.dart
│ │ ├── LayoutBuilderDemo.dart
│ │ ├── LeetCode.dart
│ │ ├── ListBodyDemo.dart
│ │ ├── ListDismissibleDemo.dart
│ │ ├── ListTileDemo.dart
│ │ ├── ListViewDemo.dart
│ │ ├── ListViewOneDemo.dart
│ │ ├── ListViewStyleDemo.dart
│ │ ├── ListWheelScrollViewDemo.dart
│ │ ├── ListenableDemo.dart
│ │ ├── LocalImagePage.dart
│ │ ├── LocalNotifationDemo.dart
│ │ ├── LoginPage.dart
│ │ ├── LoginPageOne.dart
│ │ ├── LoginPageTwo.dart
│ │ ├── LongCaptureWidgetDemo.dart
│ │ ├── MarkdownBodyDemo.dart
│ │ ├── MarqueeWidgetDemo.dart
│ │ ├── MaterialBannerDemo.dart
│ │ ├── MaterialDemo.dart
│ │ ├── MediaQueryDemo.dart
│ │ ├── MediaQueryDemoOne.dart
│ │ ├── MediaQueryScreeenDemo.dart
│ │ ├── MenuAnchorDemo.dart
│ │ ├── MenuDemo.dart
│ │ ├── MenuEntryDemo.dart
│ │ ├── MergeableMaterialDemo.dart
│ │ ├── ModalBarrierDemo.dart
│ │ ├── MouseRegionDemo.dart
│ │ ├── MyDrawer.dart
│ │ ├── MyPopverDemo.dart
│ │ ├── NAppBarColorChangerDemo.dart
│ │ ├── NAvatarGroupDemo.dart
│ │ ├── NBoxWidgetDemo.dart
│ │ ├── NChoiceBoxOneDemo.dart
│ │ ├── NChoiceExpansionDemo.dart
│ │ ├── NExpandTextDemo.dart
│ │ ├── NFooterButtonBarDemo.dart
│ │ ├── NPageViewDemo.dart
│ │ ├── NRefreshViewDemo.dart
│ │ ├── NScanPhotoDemo.dart
│ │ ├── NSectionHeaderDemo.dart
│ │ ├── NSegmentVerticalDemo.dart
│ │ ├── NSliverPersistentHeaderDemo.dart
│ │ ├── NTabBarPageDemo.dart
│ │ ├── NTabBarViewCustomDemo.dart
│ │ ├── NTargetFollowerDemo.dart
│ │ ├── NTransformViewDemo.dart
│ │ ├── NTweenTransitionDemo.dart
│ │ ├── NWebViewDemo.dart
│ │ ├── NavigationBarDemo.dart
│ │ ├── NavigationRailDemo.dart
│ │ ├── NavigationToolbarDemo.dart
│ │ ├── NestedNavigatorDemo.dart
│ │ ├── NestedScrollViewDemo.dart
│ │ ├── NestedScrollViewDemoFour.dart
│ │ ├── NestedScrollViewDemoHome.dart
│ │ ├── NestedScrollViewDemoOne.dart
│ │ ├── NestedScrollViewDemoThree.dart
│ │ ├── NestedScrollViewDemoTwo.dart
│ │ ├── NetStateListenerDemo.dart
│ │ ├── NetStateListenerDemoOne.dart
│ │ ├── NeumorphismDemo.dart
│ │ ├── NotificationListenerDemo.dart
│ │ ├── NumberFormatDemo.dart
│ │ ├── NumberStepperDemo.dart
│ │ ├── OcrPhotoDemo.dart
│ │ ├── OffstageDemo.dart
│ │ ├── OverflowBarDemo.dart
│ │ ├── OverflowDemo.dart
│ │ ├── OverlayDemo.dart
│ │ ├── OverlayDemoOne.dart
│ │ ├── OverlayDemoTwo.dart
│ │ ├── OverlayMixinDemo.dart
│ │ ├── OverlayPortalDemo.dart
│ │ ├── PageBuilderDemo.dart
│ │ ├── PageLifecycleFuncTest.dart
│ │ ├── PageLifecycleObserverDemo.dart
│ │ ├── PageRouteAnimationDemo.dart
│ │ ├── PageRouteDemo.dart
│ │ ├── PageViewAndBarDemo.dart
│ │ ├── PageViewDemo.dart
│ │ ├── PageViewDemoOne.dart
│ │ ├── PageViewDemoThree.dart
│ │ ├── PageViewVerticalDemo.dart
│ │ ├── PhysicalModelDemo.dart
│ │ ├── PickerDemo.dart
│ │ ├── PlatformDispatcherDemo.dart
│ │ ├── PlatformMenuBarDemo.dart
│ │ ├── PopScopeDemo.dart
│ │ ├── PositionedDirectionalDemo.dart
│ │ ├── PreferredSizeDemo.dart
│ │ ├── ProgressClipperDemo.dart
│ │ ├── ProgressHudDemo.dart
│ │ ├── ProgressHudDemoNew.dart
│ │ ├── PromptBuilderDemo.dart
│ │ ├── QueueAlertDemo.dart
│ │ ├── RatingBarDemo.dart
│ │ ├── ReflectDemo.dart
│ │ ├── RefreshIndicatorDemo.dart
│ │ ├── RefreshIndicatorDemoOne.dart
│ │ ├── RefreshListView.dart
│ │ ├── RegExpDemo.dart
│ │ ├── ReorderableListViewDemo.dart
│ │ ├── RichTextDemo.dart
│ │ ├── RiverPodPageCreate.dart
│ │ ├── RotatedBoxDemo.dart
│ │ ├── ScaffoldBottomSheet.dart
│ │ ├── ScaffoldDemo.dart
│ │ ├── ScanAnimationDemo.dart
│ │ ├── ScrollControllerDemo.dart
│ │ ├── ScrollbarDemo.dart
│ │ ├── SearchDemo.dart
│ │ ├── SegmentedButtonDemo.dart
│ │ ├── SegmentedControlDemo.dart
│ │ ├── SegmentedControlDemoOne.dart
│ │ ├── SegmentedPageViewDemo.dart
│ │ ├── SelectList.dart
│ │ ├── SelectableTextDemo.dart
│ │ ├── ShaderMaskDemo.dart
│ │ ├── ShortcutsDemo.dart
│ │ ├── ShortcutsDemoOne.dart
│ │ ├── ShowSearchDemo.dart
│ │ ├── SlidableDemo.dart
│ │ ├── SliderDemo.dart
│ │ ├── SliverMainAxisGroupDemo.dart
│ │ ├── SliverMainAxisGroupDemoOne.dart
│ │ ├── SnackBarDemo.dart
│ │ ├── SnackBarDemoOne.dart
│ │ ├── SplitViewDemo.dart
│ │ ├── StackDemo.dart
│ │ ├── StackDemoOne.dart
│ │ ├── StackDemoTwo.dart
│ │ ├── StatefulBuilderDemo.dart
│ │ ├── StepperDemo.dart
│ │ ├── StreamBuilderDemo.dart
│ │ ├── StringTransformPage.dart
│ │ ├── SwitchDemo.dart
│ │ ├── TabBarViewDemo.dart
│ │ ├── TableDemo.dart
│ │ ├── TapRegionDemo.dart
│ │ ├── TestFunction.dart
│ │ ├── TextDemo.dart
│ │ ├── TextFieldDemo.dart
│ │ ├── TextFieldDemoOne.dart
│ │ ├── TextFieldDemoTwo.dart
│ │ ├── TextFieldLoginDemo.dart
│ │ ├── TextFieldTabDemo.dart
│ │ ├── TextFieldWidgetDemo.dart
│ │ ├── TextPaintDemo.dart
│ │ ├── TextViewDemo.dart
│ │ ├── ThemeColorDemo.dart
│ │ ├── TicketUiDemo.dart
│ │ ├── TimePickerDemo.dart
│ │ ├── ToggleableStateMixinDemo.dart
│ │ ├── TooltipDemo.dart
│ │ ├── TransformDemo.dart
│ │ ├── TranslationTextPage.dart
│ │ ├── TwoDimensionalGridViewDemo.dart
│ │ ├── Uint8ListDemo.dart
│ │ ├── UploadFileDemo.dart
│ │ ├── UrlLauncherDemo.dart
│ │ ├── ValueListenableBuilderDemo.dart
│ │ ├── VideoPlayerDemo.dart
│ │ ├── VisibilityDemo.dart
│ │ ├── WeatherInfoPage.dart
│ │ ├── WrapDemo.dart
│ │ ├── YamlParsePage.dart
│ │ ├── ae_report_page.dart
│ │ ├── audio_visualizer_demo.dart
│ │ ├── box_shadow_demo.dart
│ │ ├── box_shadow_demo_one.dart
│ │ ├── checkbox_menu_demo.dart
│ │ ├── convert
│ │ │ ├── ConvertProtocol.dart
│ │ │ ├── CopyWithConvert.dart
│ │ │ ├── PackageExportConvert.dart
│ │ │ ├── SizeFilterConvert.dart
│ │ │ ├── WidgetNameConvert.dart
│ │ │ └── WidgetThemeConvert.dart
│ │ ├── curve_painter.dart
│ │ ├── data_type_demo.dart
│ │ ├── drawImageNineDemo.dart
│ │ ├── drug_dosage_cal_page.dart
│ │ ├── email_sender_demo.dart
│ │ ├── enumDemo.dart
│ │ ├── file_upload_box_demo.dart
│ │ ├── homeSrollDemo.dart
│ │ ├── isolateDemo.dart
│ │ ├── keyboard_attach_demo.dart
│ │ ├── lerpDemo.dart
│ │ ├── merge_images_demo.dart
│ │ ├── merge_network_images_demo.dart
│ │ ├── n_collection_nav_widget_demo.dart
│ │ ├── n_horizontal_scroll_widget_demo.dart
│ │ ├── navgation_bar_demo.dart
│ │ ├── operator_demo.dart
│ │ ├── patient_filter_box.dart
│ │ ├── rp_template_qrcode_page.dart
│ │ ├── secure_keyboard_demo.dart
│ │ ├── smart_dialog_demo.dart
│ │ ├── steper_connector_demo.dart
│ │ ├── swiper_card_demo.dart
│ │ ├── system_color_page.dart
│ │ ├── system_curves_page.dart
│ │ ├── system_icons_page.dart
│ │ ├── tab_container_demo.dart
│ │ ├── test_page.dart
│ │ ├── test_page_one.dart
│ │ ├── weather
│ │ │ ├── models
│ │ │ │ └── weather_type.dart
│ │ │ ├── screens
│ │ │ │ └── weather_home.dart
│ │ │ └── widgets
│ │ │ │ ├── weather_card.dart
│ │ │ │ └── weather_effects
│ │ │ │ ├── cloudy_effect.dart
│ │ │ │ ├── foggy_effect.dart
│ │ │ │ ├── rain_effect.dart
│ │ │ │ ├── snow_effect.dart
│ │ │ │ ├── sunny_effect.dart
│ │ │ │ └── thunderstorm_effect.dart
│ │ ├── webview_demo.dart
│ │ ├── widget
│ │ │ └── im_conversation_cell.dart
│ │ └── will_pop_scope_demo.dart
│ ├── first_page.dart
│ ├── fourth_page.dart
│ ├── medication_calculator.dart
│ ├── neomorphism
│ │ ├── neomorphism_cards_screen.dart
│ │ ├── neomorphism_custom_switch.dart
│ │ ├── neomorphism_home_page.dart
│ │ └── neomorphism_login_screen.dart
│ ├── second_page.dart
│ ├── sliver_demo
│ │ ├── NPinnedTabBarPageDemo.dart
│ │ ├── PinnedHeaderSliverDemo.dart
│ │ ├── SliverAnimatedListDemo.dart
│ │ ├── SliverAppBarDemo.dart
│ │ ├── SliverAppBarDemoOne.dart
│ │ ├── SliverBaseDemo.dart
│ │ ├── SliverFamilyDemo.dart
│ │ ├── SliverFillRemainingDemo.dart
│ │ ├── SliverFillViewportDemo.dart
│ │ ├── SliverFloatingHeaderDemo.dart
│ │ ├── SliverGridDemo.dart
│ │ ├── SliverListDemo.dart
│ │ ├── SliverListPopverDemo.dart
│ │ ├── SliverPersistentHeaderDemo.dart
│ │ ├── SliverPersistentHeaderDemoOne.dart
│ │ ├── SliverPersistentHeaderDemoTwo.dart
│ │ ├── SliverResizingHeaderDemo.dart
│ │ ├── SliverTabBarDemo.dart
│ │ ├── SliverTabbarDemoOne.dart
│ │ ├── StaggeredGridViewDemo.dart
│ │ └── listener_header_page.dart
│ ├── tabBar_pageView_demo.dart
│ ├── tabBar_reuse_page_demo.dart
│ ├── tabBar_tabBarView_demo.dart
│ └── third_page.dart
├── provider
│ ├── ProxyProvider_demo.dart
│ ├── color_filtered_provider.dart
│ ├── event_bus_tool.dart
│ ├── getx_state_demo.dart
│ ├── getx_state_demo_new.dart
│ ├── inherited_widget_demo.dart
│ ├── notifier_demo.dart
│ ├── order_provider.dart
│ ├── provider_demo.dart
│ ├── provider_demo_one.dart
│ ├── provider_list_demo.dart
│ ├── rxDart_provider_demo.dart
│ └── state_manager_demo.dart
├── routes
│ ├── APPRouter.dart
│ ├── AppRouteObserver.dart
│ ├── BaseRouteObserver.dart
│ ├── InitialBinding.dart
│ └── middleware
│ │ └── AuthMiddleware.dart
├── service
│ ├── app_lifecycle_service.dart
│ ├── connectivity_service.dart
│ ├── internet_connection_service.dart
│ └── ocr_text_recognition_manager.dart
├── util
│ ├── AppLifecycleObserver.dart
│ ├── ChangeNotifierProviderDemo.dart
│ ├── Codable.dart
│ ├── Debounce.dart
│ ├── R.dart
│ ├── Singleton.dart
│ ├── Throttle.dart
│ ├── app_upgrade_util.dart
│ ├── color_util.dart
│ ├── data_provider.dart
│ ├── device_info_plugin_ext.dart
│ ├── easy_notifier.dart
│ ├── encrypt_util.dart
│ ├── fade_page_route.dart
│ ├── get_util.dart
│ ├── global_isolate.dart
│ ├── icons_map.dart
│ ├── localizations
│ │ ├── AppCupertinoLocalizations.dart
│ │ └── ZhCupertinoLocalizations.dart
│ ├── permission_util.dart
│ ├── tool_util.dart
│ ├── tts_manager.dart
│ └── yaml_ext.dart
└── vendor
│ ├── ExtendedImageDemo.dart
│ ├── FlutterIsolateDemo.dart
│ ├── SVGAImageDemo.dart
│ ├── ScribbleDemo.dart
│ ├── SlidableDemoOne.dart
│ ├── VisibilityDetectorDemo.dart
│ ├── amap_location
│ ├── location_detail_model.dart
│ ├── location_state_mixin.dart
│ └── map_util.dart
│ ├── app_webView_page.dart
│ ├── apple_sigin_mixin.dart
│ ├── audio_session
│ └── audio_session_manager.dart
│ ├── audioplayers
│ ├── audio_play_page.dart
│ ├── audio_player_bar.dart
│ └── audio_player_manager.dart
│ ├── azlistview
│ ├── azlistview_demo.dart
│ ├── common
│ │ ├── index.dart
│ │ ├── models.dart
│ │ ├── res.dart
│ │ └── utils.dart
│ └── ui
│ │ ├── car_models_page.dart
│ │ ├── citylist_custom_header_page.dart
│ │ ├── citylist_page.dart
│ │ ├── contacts_list_page.dart
│ │ ├── contacts_page.dart
│ │ ├── github_language_page.dart
│ │ ├── index.dart
│ │ ├── large_data_page.dart
│ │ └── page_scaffold.dart
│ ├── color_converter_demo.dart
│ ├── custom_timer_demo.dart
│ ├── file_preview
│ ├── file_preview_page.dart
│ └── webview_file_preview_page.dart
│ ├── flutter_pickers
│ ├── address_picker_page.dart
│ ├── date_picker_page.dart
│ ├── flutter_picker_util.dart
│ ├── flutter_pickers_demo.dart
│ ├── multiple_link_picker_page.dart
│ ├── multiple_picker_page.dart
│ ├── single_picker_page.dart
│ └── style_picker_page.dart
│ ├── flutter_swiper_demo.dart
│ ├── flutter_swiper_indicator_demo.dart
│ ├── fluwx
│ └── fluwx_util.dart
│ ├── getx
│ ├── getx_demo.dart
│ └── order_controller.dart
│ ├── isar
│ ├── DBDialogMixin.dart
│ ├── DBManager.dart
│ ├── db_mixin.dart
│ ├── model
│ │ ├── db_order.dart
│ │ ├── db_order.g.dart
│ │ ├── db_student.dart
│ │ ├── db_student.g.dart
│ │ ├── db_todo.dart
│ │ ├── db_todo.g.dart
│ │ └── db_user.dart
│ ├── page
│ │ ├── OrderItem.dart
│ │ ├── OrderListPage.dart
│ │ ├── OrderListPageOne.dart
│ │ ├── OrderListTabPage.dart
│ │ ├── StudentCell.dart
│ │ ├── StudentLisPage.dart
│ │ ├── StudentLisPageOne.dart
│ │ ├── StudentTabPage.dart
│ │ ├── TodoItem.dart
│ │ ├── TodoListPage.dart
│ │ ├── TodoListPageOne.dart
│ │ └── TodoListTabPage.dart
│ └── provider
│ │ ├── change_notifier
│ │ └── db_generic_provider.dart
│ │ ├── db_generic_mixin.dart
│ │ └── gex_controller
│ │ └── db_generic_controller.dart
│ ├── jpush
│ ├── jpush_info_page.dart
│ └── jpush_util.dart
│ ├── popover_demo.dart
│ ├── qr
│ ├── qr_code_scanner_demo.dart
│ └── qr_flutter_demo.dart
│ ├── scheme_sign_page.dart
│ ├── soundAbount
│ └── SoundPlayDemo.dart
│ ├── table_calendar
│ ├── basics_example.dart
│ ├── complex_example.dart
│ ├── events_example.dart
│ ├── multi_example.dart
│ ├── range_example.dart
│ ├── table_calendar_utils.dart
│ └── table_calender_main.dart
│ ├── timeline
│ ├── common
│ │ ├── colors.dart
│ │ └── font_const.dart
│ ├── timeline.dart
│ ├── timeline_demo.dart
│ ├── timeline_element.dart
│ ├── timeline_model.dart
│ ├── timeline_painter.dart
│ ├── timeline_step.dart
│ └── triangle_painter.dart
│ ├── timelines_demo
│ ├── component_page.dart
│ ├── generated_plugin_registrant.dart
│ ├── logistics_time_line.dart
│ ├── showcase
│ │ ├── package_delivery_tracking.dart
│ │ ├── process_timeline.dart
│ │ └── timeline_status.dart
│ ├── showcase_page.dart
│ ├── theme_page.dart
│ ├── timelines_demo.dart
│ └── timelines_widgets.dart
│ ├── toast_util.dart
│ ├── vibration_service.dart
│ ├── video_player
│ ├── video_player_by_chewie_page.dart.dart
│ └── video_player_controller.dart
│ └── wechat_assets_picker_demo.dart
├── macos
├── .gitignore
├── .metadata
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Podfile
├── Podfile.lock
├── README.md
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ └── app_icon_64.png
│ ├── Base.lproj
│ │ └── MainMenu.xib
│ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ ├── DebugProfile.entitlements
│ ├── Info.plist
│ ├── MainFlutterWindow.swift
│ └── Release.entitlements
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ │ └── flutter
│ │ │ │ │ └── plugins
│ │ │ │ │ └── GeneratedPluginRegistrant.java
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── macos
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v21
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values-night
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── local.properties
│ └── settings.gradle
├── build
│ ├── ios
│ │ └── Runner.build
│ │ │ └── Release-iphoneos
│ │ │ └── Runner.build
│ │ │ └── dgph
│ └── unit_test_assets
│ │ ├── AssetManifest.json
│ │ ├── FontManifest.json
│ │ ├── NOTICES.Z
│ │ ├── fonts
│ │ └── MaterialIcons-Regular.otf
│ │ └── packages
│ │ └── cupertino_icons
│ │ └── assets
│ │ └── CupertinoIcons.ttf
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ ├── Generated.xcconfig
│ │ ├── Release.xcconfig
│ │ └── flutter_export_environment.sh
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── GeneratedPluginRegistrant.h
│ │ ├── GeneratedPluginRegistrant.m
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── lib
│ └── main.dart
├── macos
│ ├── .gitignore
│ ├── Flutter
│ │ ├── Flutter-Debug.xcconfig
│ │ ├── Flutter-Release.xcconfig
│ │ └── GeneratedPluginRegistrant.swift
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ └── app_icon_64.png
│ │ ├── Base.lproj
│ │ └── MainMenu.xib
│ │ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ │ ├── DebugProfile.entitlements
│ │ ├── Info.plist
│ │ ├── MainFlutterWindow.swift
│ │ └── Release.entitlements
├── pubspec.lock
├── pubspec.yaml
├── test
│ └── widget_test.dart
├── web
│ ├── favicon.png
│ ├── icons
│ │ ├── Icon-192.png
│ │ └── Icon-512.png
│ ├── index.html
│ └── manifest.json
└── windows
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
│ └── runner
│ ├── CMakeLists.txt
│ ├── Runner.rc
│ ├── flutter_window.cpp
│ ├── flutter_window.h
│ ├── main.cpp
│ ├── resource.h
│ ├── resources
│ └── app_icon.ico
│ ├── run_loop.cpp
│ ├── run_loop.h
│ ├── runner.exe.manifest
│ ├── utils.cpp
│ ├── utils.h
│ ├── win32_window.cpp
│ └── win32_window.h
├── pubspec.lock
├── pubspec.yaml
├── screenshots
├── 7315个系统图标.png
└── Screen Shot -2021-05-12 at 18.26.36.png
├── test
└── widget_test.dart
├── web
├── favicon.png
├── icons
│ ├── Icon-192.png
│ ├── Icon-512.png
│ ├── Icon-maskable-192.png
│ └── Icon-maskable-512.png
├── index.html
├── manifest.json
└── splash
│ └── img
│ └── light-background.png
├── weekly.sh
└── windows
├── .gitignore
├── CMakeLists.txt
├── flutter
├── CMakeLists.txt
├── generated_plugin_registrant.cc
├── generated_plugin_registrant.h
└── generated_plugins.cmake
└── runner
├── CMakeLists.txt
├── Runner.rc
├── flutter_window.cpp
├── flutter_window.h
├── main.cpp
├── resource.h
├── resources
└── app_icon.ico
├── runner.exe.manifest
├── utils.cpp
├── utils.h
├── win32_window.cpp
└── win32_window.h
/.fvm/flutter_sdk:
--------------------------------------------------------------------------------
1 | /Users/shang/fvm/versions/3.16.7
--------------------------------------------------------------------------------
/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.16.7"
3 | }
--------------------------------------------------------------------------------
/.fvm/release:
--------------------------------------------------------------------------------
1 | 3.16.7
--------------------------------------------------------------------------------
/.fvm/version:
--------------------------------------------------------------------------------
1 | 3.16.7
--------------------------------------------------------------------------------
/.fvm/versions/3.16.7:
--------------------------------------------------------------------------------
1 | /Users/shang/fvm/versions/3.16.7
--------------------------------------------------------------------------------
/.fvmrc:
--------------------------------------------------------------------------------
1 | {
2 | "flutter": "3.16.7"
3 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | **/ios/Flutter/.last_build_id
26 | .dart_tool/
27 | .flutter-plugins
28 | .flutter-plugins-dependencies
29 | .packages
30 | .pub-cache/
31 | .pub/
32 | /build/
33 |
34 | # Web related
35 | lib/generated_plugin_registrant.dart
36 |
37 | # Symbolication related
38 | app.*.symbols
39 |
40 | # Obfuscation related
41 | app.*.map.json
42 |
43 | # Android Studio will place build artifacts here
44 | /android/app/debug
45 | /android/app/profile
46 | /android/app/release
47 |
48 | # FVM Version Cache
49 | .fvm/
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 4cc385b4b84ac2f816d939a49ea1f328c4e0b48e
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // 使用 IntelliSense 了解相关属性。
3 | // 悬停以查看现有属性的描述。
4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 |
8 | {
9 | "name": "flutter_templet_project",
10 | "request": "launch",
11 | "type": "dart"
12 | },
13 | {
14 | "name": "flutter_templet_project (profile mode)",
15 | "request": "launch",
16 | "type": "dart",
17 | "flutterMode": "profile"
18 | },
19 | {
20 | "name": "flutter_templet_project (release mode)",
21 | "request": "launch",
22 | "type": "dart",
23 | "flutterMode": "release"
24 | },
25 | {
26 | "name": "Flutter for web",
27 | "type": "dart",
28 | "request": "launch",
29 | "program": "lib/main.dart",
30 | "args": [
31 | "-d",
32 | "chrome"
33 | ]
34 | }
35 | ]
36 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "dart.flutterSdkPath": ".fvm/versions/3.16.7"
3 | }
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/example/flutter_templet_project/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.flutter_templet_project
2 | import android.os.Bundle
3 | import io.flutter.embedding.android.FlutterActivity
4 | class MainActivity: FlutterActivity() {
5 | }
6 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/drawable-v21/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/drawable/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/fastlane/.env:
--------------------------------------------------------------------------------
1 |
2 | app_name = "App名称"
3 |
4 |
5 | # 各种链接
6 | APP_Slogan = "*"
7 | App_Icon_Link = "*"
8 | App_Store_Link = "itms-apps://apps.apple.com/cn/app/*?mt=8"
9 |
10 |
11 | Firim_Shortcut_Link = "http://d.firim.top/*"
12 | Pgyer_Shortcut_Link = "https://www.pgyer.com/*"
13 |
14 | Dingtalk_Url = "*"
15 |
16 | Slack_Url = "*"
17 |
18 | # APP元数据及截图存放路径
19 | App_Icon_Local = "./fastlane/metadata/app_icon.jpg"
20 | Metadata_Path = "./fastlane/metadata"
21 | Screenshots_Path = "./fastlane/screenshots"
22 |
--------------------------------------------------------------------------------
/android/fastlane/Pluginfile:
--------------------------------------------------------------------------------
1 | # Autogenerated by fastlane
2 | #
3 | # Ensure this file is checked in to source control!
4 |
5 | gem 'fastlane-plugin-firim'
6 | gem 'fastlane-plugin-pgyer'
7 | gem 'fastlane-plugin-versioning_android'
8 |
9 |
--------------------------------------------------------------------------------
/android/fastlane/metadata/app_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/android/fastlane/metadata/app_icon.jpg
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx4608m
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Aug 15 15:06:24 CST 2022
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStorePath=wrapper/dists
5 | zipStoreBase=GRADLE_USER_HOME
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
7 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
4 | def properties = new Properties()
5 |
6 | assert localPropertiesFile.exists()
7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
8 |
9 | def flutterSdkPath = properties.getProperty("flutter.sdk")
10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12 |
--------------------------------------------------------------------------------
/assets/avicii-waiting for love.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/avicii-waiting for love.mp3
--------------------------------------------------------------------------------
/assets/data/poetry.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title":"曼德拉《漫漫人生路》",
4 | "description":"如果发出声音是危险的,那就保持沉默;\n如果自觉无力发光,那就别去照亮别人。\n但是——不要习惯了黑暗就为黑暗辩护;\n不要为自己的苟且而得意洋洋;\n不要嘲讽那些比自己更勇敢、更有热量的人们。\n我们可以卑微如尘土,不可扭曲如蛆虫。\n——曼德拉《漫漫人生路》"
5 | }
6 | ]
--------------------------------------------------------------------------------
/assets/images/2.0x/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/avatar.png
--------------------------------------------------------------------------------
/assets/images/2.0x/icon_appbar_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_appbar_back.png
--------------------------------------------------------------------------------
/assets/images/2.0x/icon_appbar_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_appbar_back_white.png
--------------------------------------------------------------------------------
/assets/images/2.0x/icon_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_delete.png
--------------------------------------------------------------------------------
/assets/images/2.0x/icon_home_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/icon_home_delete.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_placeholder_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_empty.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_placeholder_empty_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_empty_one.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_placeholder_offonline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_offonline.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_placeholder_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_placeholder_search.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_update.png
--------------------------------------------------------------------------------
/assets/images/2.0x/img_upload_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/2.0x/img_upload_placeholder.png
--------------------------------------------------------------------------------
/assets/images/3.0x/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/avatar.png
--------------------------------------------------------------------------------
/assets/images/3.0x/icon_appbar_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_appbar_back.png
--------------------------------------------------------------------------------
/assets/images/3.0x/icon_appbar_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_appbar_back_white.png
--------------------------------------------------------------------------------
/assets/images/3.0x/icon_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_delete.png
--------------------------------------------------------------------------------
/assets/images/3.0x/icon_home_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/icon_home_delete.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_placeholder_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_empty.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_placeholder_empty_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_empty_one.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_placeholder_offonline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_offonline.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_placeholder_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_placeholder_search.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_update.png
--------------------------------------------------------------------------------
/assets/images/3.0x/img_upload_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/3.0x/img_upload_placeholder.png
--------------------------------------------------------------------------------
/assets/images/404.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/404.png
--------------------------------------------------------------------------------
/assets/images/QRCode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/QRCode.png
--------------------------------------------------------------------------------
/assets/images/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar.png
--------------------------------------------------------------------------------
/assets/images/avatar_female.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_female.png
--------------------------------------------------------------------------------
/assets/images/avatar_male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_male.png
--------------------------------------------------------------------------------
/assets/images/avatar_team.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/avatar_team.png
--------------------------------------------------------------------------------
/assets/images/background_ocean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/background_ocean.png
--------------------------------------------------------------------------------
/assets/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg.png
--------------------------------------------------------------------------------
/assets/images/bg_beach.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_beach.jpg
--------------------------------------------------------------------------------
/assets/images/bg_chat_bubble_from.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_chat_bubble_from.png
--------------------------------------------------------------------------------
/assets/images/bg_chat_bubble_to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_chat_bubble_to.png
--------------------------------------------------------------------------------
/assets/images/bg_color.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_color.jpg
--------------------------------------------------------------------------------
/assets/images/bg_glassmophism.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_glassmophism.png
--------------------------------------------------------------------------------
/assets/images/bg_horizontal_scroll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_horizontal_scroll.png
--------------------------------------------------------------------------------
/assets/images/bg_jiguang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_jiguang.png
--------------------------------------------------------------------------------
/assets/images/bg_mine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mine.png
--------------------------------------------------------------------------------
/assets/images/bg_mk11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mk11.jpg
--------------------------------------------------------------------------------
/assets/images/bg_mountain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_mountain.png
--------------------------------------------------------------------------------
/assets/images/bg_nfs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_nfs.jpg
--------------------------------------------------------------------------------
/assets/images/bg_ocean.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_ocean.jpg
--------------------------------------------------------------------------------
/assets/images/bg_service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/bg_service.png
--------------------------------------------------------------------------------
/assets/images/canvas_draw_arc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/canvas_draw_arc.png
--------------------------------------------------------------------------------
/assets/images/curve/curve_bounce_in.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_in.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_bounce_in_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_in_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_bounce_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_bounce_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_decelerate.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_decelerate.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_back.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_circ.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_circ.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_cubic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_cubic.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_expo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_expo.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_back.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_circ.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_circ.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_cubic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_cubic.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_expo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_expo.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_quad.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quad.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_quart.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quart.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_quint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_quint.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_out_sine.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_out_sine.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_quad.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quad.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_quart.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quart.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_quint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_quint.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_in_sine.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_in_sine.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_back.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_back.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_circ.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_circ.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_cubic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_cubic.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_expo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_expo.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_quad.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quad.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_quart.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quart.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_quint.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_quint.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_ease_out_sine.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_ease_out_sine.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_elastic_in.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_in.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_elastic_in_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_in_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_elastic_out.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_elastic_out.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_fast_out_slow_in.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_fast_out_slow_in.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_flipped.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_flipped.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_interval.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_interval.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_linear.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_linear.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_sawtooth.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_sawtooth.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_slow_middle.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_slow_middle.gif
--------------------------------------------------------------------------------
/assets/images/curve/curve_threshold.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/curve/curve_threshold.gif
--------------------------------------------------------------------------------
/assets/images/dart3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/dart3.png
--------------------------------------------------------------------------------
/assets/images/dart3_one.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/dart3_one.jpeg
--------------------------------------------------------------------------------
/assets/images/floating.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/floating.png
--------------------------------------------------------------------------------
/assets/images/flutter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter.jpg
--------------------------------------------------------------------------------
/assets/images/flutter.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter.webp
--------------------------------------------------------------------------------
/assets/images/flutter_key.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter_key.webp
--------------------------------------------------------------------------------
/assets/images/flutter_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/flutter_logo.png
--------------------------------------------------------------------------------
/assets/images/icon_account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_account.png
--------------------------------------------------------------------------------
/assets/images/icon_add_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_add_circle.png
--------------------------------------------------------------------------------
/assets/images/icon_adverse_event.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_adverse_event.png
--------------------------------------------------------------------------------
/assets/images/icon_again_shopping_cart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_again_shopping_cart.png
--------------------------------------------------------------------------------
/assets/images/icon_appbar_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_appbar_back.png
--------------------------------------------------------------------------------
/assets/images/icon_appbar_back_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_appbar_back_white.png
--------------------------------------------------------------------------------
/assets/images/icon_apple_bg_grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_apple_bg_grey.png
--------------------------------------------------------------------------------
/assets/images/icon_arranged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arranged.png
--------------------------------------------------------------------------------
/assets/images/icon_arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_down.png
--------------------------------------------------------------------------------
/assets/images/icon_arrow_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_left.png
--------------------------------------------------------------------------------
/assets/images/icon_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_right.png
--------------------------------------------------------------------------------
/assets/images/icon_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_arrow_up.png
--------------------------------------------------------------------------------
/assets/images/icon_audio_visit_evaluate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_audio_visit_evaluate.png
--------------------------------------------------------------------------------
/assets/images/icon_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_camera.png
--------------------------------------------------------------------------------
/assets/images/icon_check_box_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_box_selected.png
--------------------------------------------------------------------------------
/assets/images/icon_check_box_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_box_unselected.png
--------------------------------------------------------------------------------
/assets/images/icon_check_circle_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_selected.png
--------------------------------------------------------------------------------
/assets/images/icon_check_circle_selected_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_selected_one.png
--------------------------------------------------------------------------------
/assets/images/icon_check_circle_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_unselected.png
--------------------------------------------------------------------------------
/assets/images/icon_check_circle_unselected_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_check_circle_unselected_one.png
--------------------------------------------------------------------------------
/assets/images/icon_chinese_medicine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_chinese_medicine.png
--------------------------------------------------------------------------------
/assets/images/icon_circle_half.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_circle_half.png
--------------------------------------------------------------------------------
/assets/images/icon_clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_clear.png
--------------------------------------------------------------------------------
/assets/images/icon_close_60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_close_60.png
--------------------------------------------------------------------------------
/assets/images/icon_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_copy.png
--------------------------------------------------------------------------------
/assets/images/icon_corner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_corner.png
--------------------------------------------------------------------------------
/assets/images/icon_dart3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_dart3.png
--------------------------------------------------------------------------------
/assets/images/icon_date_calender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_date_calender.png
--------------------------------------------------------------------------------
/assets/images/icon_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_delete.png
--------------------------------------------------------------------------------
/assets/images/icon_dowload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_dowload.png
--------------------------------------------------------------------------------
/assets/images/icon_edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_edit.png
--------------------------------------------------------------------------------
/assets/images/icon_emoji_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_emoji_circle.png
--------------------------------------------------------------------------------
/assets/images/icon_expand_arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_expand_arrow_down.png
--------------------------------------------------------------------------------
/assets/images/icon_expand_arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_expand_arrow_up.png
--------------------------------------------------------------------------------
/assets/images/icon_eye_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_eye_close.png
--------------------------------------------------------------------------------
/assets/images/icon_eye_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_eye_open.png
--------------------------------------------------------------------------------
/assets/images/icon_file_excel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_excel.png
--------------------------------------------------------------------------------
/assets/images/icon_file_pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_pdf.png
--------------------------------------------------------------------------------
/assets/images/icon_file_ppt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_ppt.png
--------------------------------------------------------------------------------
/assets/images/icon_file_unknow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_unknow.png
--------------------------------------------------------------------------------
/assets/images/icon_file_word.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_file_word.png
--------------------------------------------------------------------------------
/assets/images/icon_filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_filter.png
--------------------------------------------------------------------------------
/assets/images/icon_heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart.png
--------------------------------------------------------------------------------
/assets/images/icon_heart_border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart_border.png
--------------------------------------------------------------------------------
/assets/images/icon_heart_half.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_heart_half.png
--------------------------------------------------------------------------------
/assets/images/icon_hi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_hi.png
--------------------------------------------------------------------------------
/assets/images/icon_home_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_home_delete.png
--------------------------------------------------------------------------------
/assets/images/icon_inquiry_pay_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_pay_selected.png
--------------------------------------------------------------------------------
/assets/images/icon_inquiry_pay_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_pay_unselected.png
--------------------------------------------------------------------------------
/assets/images/icon_inquiry_rights_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_rights_selected.png
--------------------------------------------------------------------------------
/assets/images/icon_inquiry_rights_unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_inquiry_rights_unselected.png
--------------------------------------------------------------------------------
/assets/images/icon_jc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_jc.png
--------------------------------------------------------------------------------
/assets/images/icon_json_file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_json_file.png
--------------------------------------------------------------------------------
/assets/images/icon_left_voice_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_1.png
--------------------------------------------------------------------------------
/assets/images/icon_left_voice_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_2.png
--------------------------------------------------------------------------------
/assets/images/icon_left_voice_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_left_voice_3.png
--------------------------------------------------------------------------------
/assets/images/icon_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_lock.png
--------------------------------------------------------------------------------
/assets/images/icon_medical_appliance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_medical_appliance.png
--------------------------------------------------------------------------------
/assets/images/icon_member_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_remove.png
--------------------------------------------------------------------------------
/assets/images/icon_member_voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_voice.png
--------------------------------------------------------------------------------
/assets/images/icon_member_voice_disable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_member_voice_disable.png
--------------------------------------------------------------------------------
/assets/images/icon_move_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_move_down.png
--------------------------------------------------------------------------------
/assets/images/icon_move_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_move_up.png
--------------------------------------------------------------------------------
/assets/images/icon_ocr_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_ocr_bar.png
--------------------------------------------------------------------------------
/assets/images/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_pause.png
--------------------------------------------------------------------------------
/assets/images/icon_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_play.png
--------------------------------------------------------------------------------
/assets/images/icon_play_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_play_video.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_approved.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_approved.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_cancellation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_cancellation.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_finished.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_finished.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_invalid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_invalid.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_refused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_refused.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_unused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_unused.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_used.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_used.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_wait_approve.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_wait_approve.png
--------------------------------------------------------------------------------
/assets/images/icon_postmark_wait_notarize.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_postmark_wait_notarize.png
--------------------------------------------------------------------------------
/assets/images/icon_qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_qr.png
--------------------------------------------------------------------------------
/assets/images/icon_quote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_quote.png
--------------------------------------------------------------------------------
/assets/images/icon_rec_cat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_rec_cat.png
--------------------------------------------------------------------------------
/assets/images/icon_reviewed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_reviewed.png
--------------------------------------------------------------------------------
/assets/images/icon_revoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_revoke.png
--------------------------------------------------------------------------------
/assets/images/icon_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_scan.png
--------------------------------------------------------------------------------
/assets/images/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_search.png
--------------------------------------------------------------------------------
/assets/images/icon_segment_collect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segment_collect.png
--------------------------------------------------------------------------------
/assets/images/icon_segment_emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segment_emoji.png
--------------------------------------------------------------------------------
/assets/images/icon_segmented_control_carer_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_carer_gray.png
--------------------------------------------------------------------------------
/assets/images/icon_segmented_control_carer_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_carer_white.png
--------------------------------------------------------------------------------
/assets/images/icon_segmented_control_doctor_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_doctor_gray.png
--------------------------------------------------------------------------------
/assets/images/icon_segmented_control_doctor_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_segmented_control_doctor_white.png
--------------------------------------------------------------------------------
/assets/images/icon_skipping.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_skipping.gif
--------------------------------------------------------------------------------
/assets/images/icon_specimen_collection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_specimen_collection.png
--------------------------------------------------------------------------------
/assets/images/icon_subject_diary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_subject_diary.png
--------------------------------------------------------------------------------
/assets/images/icon_switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_switch.png
--------------------------------------------------------------------------------
/assets/images/icon_time_long.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_time_long.png
--------------------------------------------------------------------------------
/assets/images/icon_time_long_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_time_long_one.png
--------------------------------------------------------------------------------
/assets/images/icon_trash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_trash.png
--------------------------------------------------------------------------------
/assets/images/icon_trash_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_trash_one.png
--------------------------------------------------------------------------------
/assets/images/icon_upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_upload.png
--------------------------------------------------------------------------------
/assets/images/icon_upload_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_upload_one.png
--------------------------------------------------------------------------------
/assets/images/icon_user_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_user_add.png
--------------------------------------------------------------------------------
/assets/images/icon_user_del.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_user_del.png
--------------------------------------------------------------------------------
/assets/images/icon_video_visit_evaluate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_video_visit_evaluate.png
--------------------------------------------------------------------------------
/assets/images/icon_voice_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_voice_circle.png
--------------------------------------------------------------------------------
/assets/images/icon_wait_reply.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wait_reply.png
--------------------------------------------------------------------------------
/assets/images/icon_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wechat.png
--------------------------------------------------------------------------------
/assets/images/icon_wechat_bg_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/icon_wechat_bg_green.png
--------------------------------------------------------------------------------
/assets/images/image_header_bg2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/image_header_bg2.webp
--------------------------------------------------------------------------------
/assets/images/img_404.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_404.png
--------------------------------------------------------------------------------
/assets/images/img_flutter_3_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_flutter_3_10.png
--------------------------------------------------------------------------------
/assets/images/img_flutter_3_10.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_flutter_3_10.webp
--------------------------------------------------------------------------------
/assets/images/img_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_doctor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_doctor.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_empty.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_empty_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_empty_one.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_offonline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_offonline.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_patient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_patient.png
--------------------------------------------------------------------------------
/assets/images/img_placeholder_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_placeholder_search.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_bg_recording.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bg_recording.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_bottom2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom2.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_bottom_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_bottom_cancel.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_button.png
--------------------------------------------------------------------------------
/assets/images/img_sound_overlay_button_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_overlay_button_cancel.png
--------------------------------------------------------------------------------
/assets/images/img_sound_recording.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_sound_recording.gif
--------------------------------------------------------------------------------
/assets/images/img_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_update.png
--------------------------------------------------------------------------------
/assets/images/img_upload_placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/img_upload_placeholder.png
--------------------------------------------------------------------------------
/assets/images/js_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/js_cover.png
--------------------------------------------------------------------------------
/assets/images/logo_glassmophism.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/logo_glassmophism.png
--------------------------------------------------------------------------------
/assets/images/package_delivery_tracking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/package_delivery_tracking.png
--------------------------------------------------------------------------------
/assets/images/process_timeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/process_timeline.png
--------------------------------------------------------------------------------
/assets/images/pub_dev_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/pub_dev_logo.png
--------------------------------------------------------------------------------
/assets/images/rec_left_flot_btn.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/rec_left_flot_btn.gif
--------------------------------------------------------------------------------
/assets/images/sha_qiu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/sha_qiu.png
--------------------------------------------------------------------------------
/assets/images/shan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/shan.png
--------------------------------------------------------------------------------
/assets/images/soaring_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/soaring_logo.png
--------------------------------------------------------------------------------
/assets/images/soaring_logo_two.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/soaring_logo_two.png
--------------------------------------------------------------------------------
/assets/images/timeline_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/timeline_status.png
--------------------------------------------------------------------------------
/assets/images/weiqi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/images/weiqi.png
--------------------------------------------------------------------------------
/assets/sample.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/assets/sample.mp3
--------------------------------------------------------------------------------
/buildIos.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # 获取输入环境名称 test(beta、pre) prod
4 | while true; do
5 | echo "请选择环境: 1:test 2:pre 0:prod"; read envName
6 | case $envName in
7 | 1)
8 | envName="test"
9 | break
10 | ;;
11 | 2)
12 | envName="pre"
13 | break
14 | ;;
15 | 0)
16 | envName="prod"
17 | break
18 | ;;
19 | *)
20 | echo "请输入有效的选项 (1 或 2 或 0)"
21 | ;;
22 | esac
23 | done
24 |
25 | # 构建
26 | flutter build ios --release --dart-define=app_env=${envName}
27 |
28 | # 输出路径
29 | echo $'\n在编辑器中打开文件目录 (Cmd + 单击)'
30 | echo $'\e[35m'"$(realpath "build/ios/iphoneos/")"$'\e[0m'
31 |
32 | exit
33 |
--------------------------------------------------------------------------------
/devtools_options.yaml:
--------------------------------------------------------------------------------
1 | extensions:
2 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 12.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
3 | #include "Generated.xcconfig"
4 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
3 | #include "Generated.xcconfig"
4 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "background.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "LaunchImage.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "LaunchImage@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "LaunchImage@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/FMDB.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/Flutter.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/Pods-Runner.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/Toast.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/flutter_boost.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/fluttertoast.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/integration_test.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/path_provider.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/path_provider_ios.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/permission_handler.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/share.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/sqflite.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/url_launcher.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/url_launcher_ios.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/build/Pods.build/Release-iphonesimulator/webview_flutter_wkwebview.build/dgph:
--------------------------------------------------------------------------------
1 | DGPH1.04Aug 25 202119:34:47 / Users shang GitHub flutter_templet_project ios Pods
--------------------------------------------------------------------------------
/ios/fastlane/.env:
--------------------------------------------------------------------------------
1 |
2 | Apple_Id = "*" # Your Apple email address
3 | Team_Id = "*" # Developer Portal Team ID
4 |
5 | Itc_Team_Name = "*"
6 | Itc_Team_Id = "*"
7 |
8 | Scheme_Name = "Runner"
9 | App_bundleid = "com.*.*"
10 | App_mobileprovision_dev = "*_dev"
11 | App_mobileprovision_prod = "*_prod"
12 |
13 |
14 | # 各种链接
15 | APP_Slogan = "*"
16 | App_Icon_Link = "*"
17 | App_Store_Link = "itms-apps://apps.apple.com/cn/app/*?mt=8"
18 |
19 |
20 | Firim_Shortcut_Link = "http://d.firim.top/*"
21 | Pgyer_Shortcut_Link = "https://www.pgyer.com/*"
22 |
23 | Dingtalk_Url = "*"
24 |
25 | Slack_Url = "*"
26 |
27 | # APP元数据及截图存放路径
28 | App_Icon_Local = "./fastlane/metadata/app_icon.jpg"
29 | Metadata_Path = "./fastlane/metadata"
30 | Screenshots_Path = "./fastlane/screenshots"
31 |
--------------------------------------------------------------------------------
/ios/fastlane/Appfile:
--------------------------------------------------------------------------------
1 |
2 | apple_id ENV["Apple_Id"]
3 | app_identifier ENV["App_bundleid"]
4 |
5 | itc_team_name ENV["Itc_Team_Name"]
6 | itc_team_id ENV["Itc_Team_Id"]
7 |
8 | team_id ENV["Team_Id"]
9 |
--------------------------------------------------------------------------------
/ios/fastlane/Deliverfile:
--------------------------------------------------------------------------------
1 | ###################### More Options ######################
2 | # If you want to have even more control, check out the documentation
3 | # https://github.com/fastlane/fastlane/blob/master/deliver/Deliverfile.md
4 |
5 |
6 | ###################### Automatically generated ######################
7 | # Feel free to remove the following line if you use fastlane (which you should)
8 |
9 | # app_identifier "com.parkingwang.iop" # The bundle identifier of your app
10 | # username "shangbinbin@parkingwang.com" # your Apple ID user
11 |
12 | app_identifier ENV["App_bundleid"]
13 | username ENV["Apple_Id"]
--------------------------------------------------------------------------------
/ios/fastlane/Pluginfile:
--------------------------------------------------------------------------------
1 | # Autogenerated by fastlane
2 | #
3 | # Ensure this file is checked in to source control!
4 |
5 | gem 'fastlane-plugin-firim'
6 | gem 'fastlane-plugin-pgyer'
7 |
--------------------------------------------------------------------------------
/ios/fastlane/metadata/app_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shang1219178163/flutter_templet_project/b44612fb9f88a8551d97b5fb4f58266f509b4eef/ios/fastlane/metadata/app_icon.jpg
--------------------------------------------------------------------------------
/ios/fastlane/report.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/lib/basicWidget/FloatingActionButtonLocationOffset.dart:
--------------------------------------------------------------------------------
1 | //
2 | // FloatingActionButtonLocationOffset.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/9/7 17:55.
6 | // Copyright © 2023/9/7 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | /// 基于 FloatingActionButtonLocation 进行偏移
12 | class FloatingActionButtonLocationOffset extends FloatingActionButtonLocation {
13 | FloatingActionButtonLocationOffset({
14 | required this.location,
15 | this.offsetX = 0,
16 | this.offsetY = 0,
17 | });
18 |
19 | FloatingActionButtonLocation location;
20 |
21 | double offsetX;
22 |
23 | double offsetY;
24 |
25 | @override
26 | Offset getOffset(ScaffoldPrelayoutGeometry scaffoldGeometry) {
27 | var offset = location.getOffset(scaffoldGeometry);
28 | return Offset(offset.dx + offsetX, offset.dy + offsetY);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/lib/basicWidget/TextInputFormatter/block_text_input_formatter.dart:
--------------------------------------------------------------------------------
1 | //
2 | // block_text_input_formatter.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/12/13 21:50.
6 | // Copyright © 2023/12/13 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/services.dart';
10 |
11 | class BlockTextInputFormatter extends TextInputFormatter {
12 | BlockTextInputFormatter({
13 | required this.banBlock,
14 | });
15 |
16 | /// 禁用回调
17 | final bool Function(TextEditingValue oldValue, TextEditingValue newValue)
18 | banBlock;
19 |
20 | @override
21 | TextEditingValue formatEditUpdate(
22 | TextEditingValue oldValue, TextEditingValue newValue) {
23 | // debugPrint("newValue.text: ${newValue.text}");
24 | if (banBlock(oldValue, newValue)) {
25 | return oldValue;
26 | }
27 | return newValue;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/basicWidget/custome_animated.dart:
--------------------------------------------------------------------------------
1 | //
2 | // custome_animated.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 10/21/21 8:54 AM.
6 | // Copyright © 10/21/21 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/animation.dart';
10 | import 'dart:math' as math;
11 |
12 | class ShakeCurve extends Curve {
13 | @override
14 | double transform(double t) {
15 | return math.sin(t * math.pi * 2);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/lib/basicWidget/error_custom_widget.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class ErrorCustomWidget extends StatelessWidget {
4 | const ErrorCustomWidget({
5 | Key? key,
6 | required this.details,
7 | }) : super(key: key);
8 |
9 | final FlutterErrorDetails details;
10 |
11 | @override
12 | Widget build(BuildContext context) {
13 | return Center(
14 | child: Text(details.toString()),
15 | // child: Container(
16 | // color: Colors.red.shade400,
17 | // child: Column(
18 | // mainAxisAlignment: MainAxisAlignment.center,
19 | // children: [
20 | // Icon(Icons.error, size: 44,),
21 | // Text(details.toString(),
22 | // style: TextStyle(fontSize: 16.0, color: Colors.red),
23 | // ),
24 | // ],
25 | // ),
26 | // ),
27 | );
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/lib/basicWidget/fade_builder.dart:
--------------------------------------------------------------------------------
1 | //
2 | // FadeBuilder.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/6/17 16:12.
6 | // Copyright © 2024/6/17 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | /// 添加渐进动画
12 | class FadeBuilder extends StatelessWidget {
13 | const FadeBuilder({
14 | super.key,
15 | required this.child,
16 | });
17 |
18 | final Widget child;
19 |
20 | @override
21 | Widget build(BuildContext context) {
22 | return TweenAnimationBuilder(
23 | tween: Tween(begin: 0, end: 1),
24 | duration: const Duration(milliseconds: 150),
25 | builder: (_, double value, Widget? w) {
26 | return Opacity(
27 | opacity: value,
28 | child: w,
29 | );
30 | },
31 | child: child,
32 | );
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/lib/basicWidget/n_painter_arc.dart:
--------------------------------------------------------------------------------
1 | import 'dart:math';
2 |
3 | import 'package:flutter/material.dart';
4 |
5 | class NPainterArc extends CustomPainter {
6 | NPainterArc({
7 | this.color = Colors.black,
8 | this.percent = 1.0,
9 | });
10 |
11 | final Color color;
12 | final double percent;
13 |
14 | @override
15 | bool hitTest(Offset position) => true;
16 |
17 | @override
18 | bool shouldRepaint(NPainterArc oldDelegate) {
19 | return oldDelegate.color != color;
20 | }
21 |
22 | @override
23 | void paint(Canvas canvas, Size size) {
24 | var paint = Paint()
25 | ..color = color
26 | ..style = PaintingStyle.fill;
27 |
28 | final radius = min(size.width, size.height);
29 | final rect = Rect.fromCircle(
30 | center: Offset(size.width / 2, size.height / 2),
31 | radius: radius / 2,
32 | );
33 |
34 | canvas.drawArc(rect, 0.0, 2 * pi * percent, false, paint);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/lib/basicWidget/scroll/NCustomScrollBehavior.dart:
--------------------------------------------------------------------------------
1 | //
2 | // NCustomScrollBehavior.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2025/2/13 09:45.
6 | // Copyright © 2025/2/13 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:ui';
10 |
11 | import 'package:flutter/material.dart';
12 |
13 | class NCustomScrollBehavior extends MaterialScrollBehavior {
14 | @override
15 | Set get dragDevices => {
16 | PointerDeviceKind.touch,
17 | PointerDeviceKind.mouse,
18 | };
19 | }
20 |
--------------------------------------------------------------------------------
/lib/basicWidget/scroll/custom_page_controller.dart:
--------------------------------------------------------------------------------
1 | //
2 | // CustomPageController.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2025/2/5 16:31.
6 | // Copyright © 2025/2/5 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | /// 自定义 PageController 控制器
12 | class CustomPageController extends PageController {
13 | CustomPageController({
14 | super.initialPage,
15 | super.onAttach,
16 | super.onDetach,
17 | this.duration,
18 | this.curve,
19 | });
20 |
21 | /// 跳转页面
22 | Duration? duration;
23 |
24 | /// 跳转动画曲线
25 | Curve? curve;
26 |
27 | /// 跳转页面
28 | Future jumpPage(int page) {
29 | return super.animateToPage(
30 | page,
31 | duration: duration ?? Duration(milliseconds: 200),
32 | curve: curve ?? Curves.easeOut,
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/lib/basicWidget/scroll/custom_page_view_scroll_physics.dart:
--------------------------------------------------------------------------------
1 | //
2 | // CustomPageViewScrollPhysics.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2025/2/5 15:52.
6 | // Copyright © 2025/2/5 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | /// 自定义滚动行为
12 | class CustomPageViewScrollPhysics extends ScrollPhysics {
13 | const CustomPageViewScrollPhysics({ScrollPhysics? parent}) : super(parent: parent);
14 |
15 | @override
16 | CustomPageViewScrollPhysics applyTo(ScrollPhysics? ancestor) {
17 | return CustomPageViewScrollPhysics(parent: buildParent(ancestor)!);
18 | }
19 |
20 | @override
21 | SpringDescription get spring => const SpringDescription(
22 | mass: 50,
23 | stiffness: 100,
24 | damping: 0.8,
25 | );
26 | }
27 |
--------------------------------------------------------------------------------
/lib/basicWidget/triangle_path.dart:
--------------------------------------------------------------------------------
1 | //
2 | // TrianglePath.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 12/15/21 6:47 PM.
6 | // Copyright © 12/15/21 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 |
11 | class TrianglePath extends CustomClipper {
12 | @override
13 | Path getClip(Size size) {
14 | var path = Path();
15 | path.moveTo(size.width / 2, 0);
16 | path.lineTo(0, size.height);
17 | path.lineTo(size.width, size.height);
18 | return path;
19 | }
20 |
21 | @override
22 | bool shouldReclip(CustomClipper oldClipper) {
23 | return true;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/basicWidget/upload/asset_upload_config.dart:
--------------------------------------------------------------------------------
1 | class AssetUploadConfig {
2 | /// 完整的上传地址链接
3 | static String get uploadUrl => '.../oss/upload/stream';
4 | }
5 |
--------------------------------------------------------------------------------
/lib/basicWidget/upload_document/asset_upload_document_box.md:
--------------------------------------------------------------------------------
1 |
2 | # 文档上传选择器 - AssetUploadDocumentModel
3 |
4 |
5 | ## 使用
6 |
7 | ```
8 | /// 初始化数据
9 | var selectedModels = [];
10 | /// 获取链接数组
11 | List urls = [];
12 |
13 | ......
14 |
15 | Container(
16 | padding: EdgeInsets.symmetric(horizontal: 20),
17 | child: AssetUploadDocumentBox(
18 | items: selectedModels,
19 | // showFileSize: true,
20 | onChanged: (items){
21 | selectedModels = items.where((e) => e.url?.startsWith("http") == true).toList();
22 | urls = selected.map((e) => e.url ?? "").toList();
23 | },
24 | ),
25 | ),
26 | ```
27 |
28 |
29 | 支持断网重连,删除;默认执行压缩;
--------------------------------------------------------------------------------
/lib/basicWidget/upload_document/asset_upload_document_model.dart:
--------------------------------------------------------------------------------
1 | //
2 | // AssetUploadDocumentModel.dart
3 | // yl_health_app
4 | //
5 | // Created by shang on 2023/04/30 11:19.
6 | // Copyright © 2023/04/30 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:io';
10 |
11 | /// 文档选择器模型
12 | class AssetUploadDocumentModel {
13 | AssetUploadDocumentModel({
14 | this.url,
15 | this.file,
16 | });
17 |
18 | /// 上传之后的文件 url
19 | String? url;
20 |
21 | /// 文件
22 | File? file;
23 |
24 | Map toJson() {
25 | final data = Map();
26 | data['url'] = url;
27 | data['file'] = file;
28 | return data;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/lib/enum/DateFormatEnum.dart:
--------------------------------------------------------------------------------
1 | //
2 | // DateFormatEnum.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/7/9 17:28.
6 | // Copyright © 2024/7/9 shang. All rights reserved.
7 | //
8 |
9 | enum DateFormatEnum {
10 | /// yyyy-MM-dd HH:mm:ss
11 | normal("yyyyMMddHHmmss", 'yyyy-MM-dd HH:mm:ss'),
12 |
13 | /// yyyy-MM-dd
14 | yyyyMMdd("yyyyMMdd", 'yyyy-MM-dd'),
15 |
16 | /// yyyy-MM-dd 00:00:00
17 | yyyyMMdd000000("yyyyMMdd000000", 'yyyy-MM-dd 00:00:00'),
18 |
19 | /// yyyy-MM-dd 23:59:59
20 | yyyyMMdd235959("yyyyMMdd235959", 'yyyy-MM-dd 23:59:59'),
21 |
22 | /// MM-dd
23 | MMdd("MMdd", 'MM-dd'),
24 |
25 | /// HH:mm:
26 | HHmm("HHmm", 'HH:mm'),
27 |
28 | /// HH:mm:ss
29 | HHmmss("HHmmss", 'HH:mm:ss');
30 |
31 | const DateFormatEnum(this.name, this.value);
32 |
33 | final String name;
34 | final String value;
35 | }
36 |
--------------------------------------------------------------------------------
/lib/enum/DateTimeFormat.dart:
--------------------------------------------------------------------------------
1 | //
2 | // DateTimeFormat.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/3/24 15:12.
6 | // Copyright © 2024/3/24 shang. All rights reserved.
7 | //
8 |
9 | /// 日期格式枚举
10 | enum DateTimeFormat {
11 | yyyyMMddHHmmss("yyyy-MM-dd HH:mm:ss", "年月日时分秒"),
12 | yyyyMMdd("yyyy-MM-dd", "年月日"),
13 | yyyyMMdd000000("yyyy-MM-dd 00:00:00", "年月日 00:00:00"),
14 | yyyyMMdd235959("yyyy-MM-dd 23:59:59", "年月日 23:59:59"),
15 | HHmmss("HH:mm:ss", "时分秒"),
16 | HHmm("HH:mm", "时分");
17 |
18 | const DateTimeFormat(this.value, this.desc);
19 |
20 | final String value;
21 | final String desc;
22 | }
23 |
--------------------------------------------------------------------------------
/lib/enum/FileType.dart:
--------------------------------------------------------------------------------
1 | /// 文件类型
2 | enum IMFileType {
3 | unknow("icon_file_word.png"),
4 | docx("icon_file_word.png"),
5 | doc("icon_file_word.png"),
6 | xls("icon_file_excel.png.png"),
7 | xlsx("icon_file_excel.png"),
8 | ppt("icon_file_ppt.png"),
9 | pptx("icon_file_ppt.png"),
10 | pdf("icon_file_pdf.png");
11 |
12 | const IMFileType(this.iconName);
13 |
14 | final String iconName;
15 | }
16 |
--------------------------------------------------------------------------------
/lib/enum/TIMMessageStatus.dart:
--------------------------------------------------------------------------------
1 | /// 消息状态
2 | enum TIMMessageStatus {
3 | /// 未知 0
4 | unknow(""),
5 |
6 | /// 文本消息 1
7 | sending("消息发送中"),
8 |
9 | /// 自定义消息 2
10 | succ("消息发送成功"),
11 |
12 | /// 图片消息 3
13 | fail("消息发送失败"),
14 |
15 | /// 语音消息 4
16 | hasDeleted("消息被删除"),
17 |
18 | /// 视频消息 5
19 | localImported("导入到本地的消息"),
20 |
21 | /// 文件消息 6
22 | localRevoked("被撤回的消息");
23 |
24 | const TIMMessageStatus(this.desc);
25 |
26 | final String desc;
27 | }
28 |
--------------------------------------------------------------------------------
/lib/enum/TIMSignalingActionType.dart:
--------------------------------------------------------------------------------
1 | //https://comm.qq.com/im/doc/flutter/zh/SDKAPI/Enum/V2SignalingActionType.html
2 |
3 | /// tencent_cloud_chat_sdk 信令操作类型
4 | /// desc 为操作;
5 | /// index 为定义 int 类型;
6 | enum TIMSignalingActionType {
7 | /// 没有动作 0
8 | none(""),
9 |
10 | /// 邀请方发起邀请 1
11 | invite("邀请方发起邀请"),
12 |
13 | /// 邀请方取消邀请 2
14 | cancel("邀请方取消邀请"),
15 |
16 | /// 被邀请方接受邀请 3
17 | accept("被邀请方接受邀请"),
18 |
19 | /// 被邀请方拒绝邀请 4
20 | reject("被邀请方拒绝邀请"),
21 |
22 | /// 邀请超时 5
23 | timeout("邀请超时");
24 |
25 | const TIMSignalingActionType(this.desc);
26 |
27 | /// 消息类型描述
28 | final String desc;
29 | }
30 |
--------------------------------------------------------------------------------
/lib/enum/operate_type.dart:
--------------------------------------------------------------------------------
1 | //
2 | // OperateType.dart
3 | // yl_health_app
4 | //
5 | // Created by shang on 2023/11/9 15:41.
6 | // Copyright © 2023/11/9 shang. All rights reserved.
7 | //
8 |
9 | /// 基础操作
10 | enum OperateType {
11 | /// 创建/新增
12 | CREATE('新增'),
13 |
14 | /// 编辑/更新
15 | UPDATE('编辑'),
16 |
17 | /// 读取
18 | READ('读取'),
19 |
20 | /// 删除
21 | DELETE('删除');
22 |
23 | const OperateType(
24 | this.desc,
25 | );
26 |
27 | /// 当前枚举对应的 描述文字
28 | final String desc;
29 | }
30 |
--------------------------------------------------------------------------------
/lib/eventbus/ValueChangedEvent.dart:
--------------------------------------------------------------------------------
1 | class ValueChangedEvent {
2 | ValueChangedEvent(this.data);
3 |
4 | T? data;
5 | }
6 |
--------------------------------------------------------------------------------
/lib/extension/bool_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // BoolExt.dart
3 | // yl_ylgcp_app
4 | //
5 | // Created by shang on 2024/6/25 09:38.
6 | // Copyright © 2024/6/25 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:math';
10 | import 'package:flutter_templet_project/extension/num_ext.dart';
11 |
12 | extension BoolExt on bool? {
13 | /// 转字符串
14 | String toValue({String trueValue = "Y", String falseValue = "N"}) {
15 | return this == true ? trueValue : falseValue;
16 | }
17 |
18 | /// 随机布尔值
19 | static bool random() {
20 | final result = Random().nextInt(2) == 1;
21 | return result;
22 | }
23 | }
24 |
25 | extension BoolStringExt on String? {
26 | /// 转字符串
27 | bool toBool({List trueValues = const ["y", "true", "yes"]}) {
28 | final val = this?.toLowerCase();
29 | final result = trueValues.contains(val);
30 | return result;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/extension/change_notifier_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // ChangeNotifierExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 3/10/23 5:38 PM.
6 | // Copyright © 3/10/23 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 |
11 | extension ObjectVN on Object {
12 | /// 获取
13 | ValueNotifier get vn => ValueNotifier(this);
14 | }
15 |
16 | extension BoolVN on bool {
17 | /// 获取
18 | ValueNotifier get vn => ValueNotifier(this);
19 | }
20 |
21 | extension NumVN on num {
22 | /// 获取
23 | ValueNotifier get vn => ValueNotifier(this);
24 | }
25 |
26 | extension StringVN on String {
27 | /// 获取
28 | ValueNotifier get vn => ValueNotifier(this);
29 | }
30 |
31 | extension ValueNotifierListExt on ValueNotifier {
32 | /// 更新
33 | void update() {
34 | value = [...value];
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/lib/extension/clipboard_ext.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/services.dart';
2 |
3 | extension ClipboardExt on Clipboard {
4 | /// 复制内容
5 | static copy(String? text) {
6 | Clipboard.setData(ClipboardData(text: text ?? ''));
7 | }
8 |
9 | /// 获取内容
10 | static Future paste() async {
11 | var clipboardData = await Clipboard.getData(Clipboard.kTextPlain);
12 | return clipboardData?.text ?? '';
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/lib/extension/dialog_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // dialog_ext.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 5/17/21 3:57 PM.
6 | // Copyright © 5/17/21 shang. All rights reserved.
7 | //
8 |
9 | // Platform.operatingSystem
10 |
11 | import 'dart:io';
12 | import 'package:flutter/cupertino.dart';
13 | import 'package:flutter/material.dart';
14 | import 'package:flutter_templet_project/extension/widget_ext.dart';
15 |
16 | extension AlertDialogExt on AlertDialog {}
17 |
--------------------------------------------------------------------------------
/lib/extension/divider_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // DividerExtension.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 10/22/21 1:57 PM.
6 | // Copyright © 10/22/21 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | extension DividerExt on Divider {}
12 |
--------------------------------------------------------------------------------
/lib/extension/floating_action_button_location_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // FloatingActionButtonLocationExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 1/19/23 1:14 PM.
6 | // Copyright © 1/19/23 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | extension FloatingActionButtonLocationExt on FloatingActionButtonLocation {
12 | /// 枚举集合
13 | static const allCases = [
14 | FloatingActionButtonLocation.endFloat,
15 | FloatingActionButtonLocation.startTop,
16 | FloatingActionButtonLocation.centerTop,
17 | FloatingActionButtonLocation.endTop,
18 | FloatingActionButtonLocation.startFloat,
19 | FloatingActionButtonLocation.centerFloat,
20 | FloatingActionButtonLocation.startDocked,
21 | FloatingActionButtonLocation.centerDocked,
22 | FloatingActionButtonLocation.endDocked,
23 | ];
24 | }
25 |
--------------------------------------------------------------------------------
/lib/extension/getx_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // GetExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2025/3/5 15:55.
6 | // Copyright © 2025/3/5 shang. All rights reserved.
7 | //
8 |
9 | import 'package:get/get.dart';
10 |
11 | extension InstExt on GetInterface {
12 | /// 返回一个实例,如果实例不存在,则创建一个实例
13 | S putNew(S dependency, {String? tag, bool permanent = false}) {
14 | if (GetInstance().isRegistered(tag: tag)) {
15 | return find(tag: tag);
16 | }
17 |
18 | return put(dependency, tag: tag, permanent: permanent);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/lib/extension/list_nullable_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // ListNullableExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/8/29 20:18.
6 | // Copyright © 2023/8/29 shang. All rights reserved.
7 | //
8 |
9 | extension ListNullableExt on List {
10 | /// 重写属性
11 | E? get first {
12 | try {
13 | return this.first;
14 | } catch (exception) {
15 | return null;
16 | }
17 | }
18 |
19 | /// 重写属性
20 | E? get last {
21 | try {
22 | return this.last;
23 | } catch (exception) {
24 | return null;
25 | }
26 | }
27 |
28 | /// 查询元素索引,没有则返回为空
29 | int? indexOf(E element) {
30 | try {
31 | return this.indexOf(element);
32 | } catch (exception) {
33 | return null;
34 | }
35 | }
36 |
37 | /// 倒叙查询元素索引
38 | int? lastIndexOf(E element) {
39 | try {
40 | return this.lastIndexOf(element);
41 | } catch (exception) {
42 | return null;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/lib/extension/navigator_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // NavigatorExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/8/29 20:18.
6 | // Copyright © 2023/8/29 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 | import 'package:flutter/material.dart';
11 | import 'package:flutter_templet_project/extension/ddlog.dart';
12 |
13 | extension NavigatorExt on Navigator {
14 | // @optionalTypeArgs
15 | // static void popPage(BuildContext context, [ T? result ]) {
16 | // if (!Navigator.canPop(context)) {
17 | // DLog.d("已经是根页面了!");
18 | // return;
19 | // }
20 | // Navigator.of(context).pop(result);
21 | // }
22 | }
23 |
--------------------------------------------------------------------------------
/lib/extension/number_format.dart:
--------------------------------------------------------------------------------
1 | //
2 | // NumberFormat.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/8/29 20:18.
6 | // Copyright © 2023/8/29 shang. All rights reserved.
7 | //
8 |
9 | import 'package:intl/intl.dart';
10 |
11 | extension NumberFormatExt on NumberFormat {
12 | /// 转为百分比描述
13 | // 返回千分位分隔的金额
14 | static String? amount(String? val,
15 | {String fmt = '0,000.00', String? locale}) {
16 | if (val == '' || val == null) {
17 | return null;
18 | }
19 | var num = double.tryParse(val);
20 | if (num == null) {
21 | return null;
22 | }
23 |
24 | if (num < 999) {
25 | return val;
26 | }
27 |
28 | var format = NumberFormat(fmt, locale);
29 | return format.format(num);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/lib/extension/page_controller_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // PageControllerExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2025/1/16 16:33.
6 | // Copyright © 2025/1/16 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 |
11 | extension PageControllerExt on PageController {
12 | /// 跳转到对应位子
13 | Future toPage(
14 | int page, {
15 | Duration duration = const Duration(milliseconds: 350),
16 | Curve curve = Curves.ease,
17 | }) async {
18 | if (!hasClients) {
19 | return;
20 | }
21 | if (duration == Duration.zero) {
22 | jumpToPage(page);
23 | } else {
24 | await animateToPage(page, duration: duration, curve: curve);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/extension/proxy_box_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // ProxyBoxExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/1/14 14:48.
6 | // Copyright © 2023/1/14 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:io';
10 | import 'dart:typed_data';
11 | import 'dart:ui' as ui;
12 | import 'package:flutter/rendering.dart';
13 |
14 | extension RenderRepaintBoundaryExt on RenderRepaintBoundary {
15 | /// 保存图片
16 | Future saveImageToFile({
17 | required String path,
18 | ui.ImageByteFormat format = ui.ImageByteFormat.png,
19 | }) async {
20 | var image = await toImage();
21 | var byteData = await image.toByteData(format: format);
22 | var pngBytes = byteData?.buffer.asUint8List();
23 | if (pngBytes == null) {
24 | return null;
25 | }
26 | return File(path).writeAsBytes(pngBytes);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/lib/extension/system_channels_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // SystemChannelsExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/12/18 16:24.
6 | // Copyright © 2024/12/18 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/services.dart';
10 |
11 | extension SystemChannelsExt on SystemChannels {
12 | /// 键盘展示
13 | Future textInputShow() {
14 | return SystemChannels.textInput.invokeMethod('TextInput.show');
15 | }
16 |
17 | /// 键盘隐藏
18 | Future textInputHide() {
19 | return SystemChannels.textInput.invokeMethod('TextInput.hide');
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib/extension/system_chrome_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // SystemChromeExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/6/13 21:55.
6 | // Copyright © 2024/6/13 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/services.dart';
10 |
11 | extension SystemChromeExt on SystemChrome {
12 | // 强制竖屏
13 | static Future setDeviceOrientationPortrait() {
14 | return SystemChrome.setPreferredOrientations([
15 | DeviceOrientation.portraitUp,
16 | DeviceOrientation.portraitDown,
17 | ]);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/lib/extension/text_painter_ext.dart:
--------------------------------------------------------------------------------
1 | //
2 | // TextPainterExt.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/8/29 20:19.
6 | // Copyright © 2023/8/29 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 |
11 | extension TextPainterExt on TextPainter {
12 | /// 获取布局后的文字属性
13 | static TextPainter getTextPainter({
14 | required String text,
15 | TextStyle? textStyle,
16 | required int? maxLine,
17 | required double maxWidth,
18 | }) {
19 | var textSpan = TextSpan(text: text, style: textStyle);
20 | var textPainter = TextPainter(
21 | ///AUTO:华为手机如果不指定locale的时候,该方法算出来的文字高度是比系统计算偏小的。
22 | locale: WidgetsBinding.instance.window.locale,
23 | text: textSpan,
24 | maxLines: maxLine,
25 | textDirection: TextDirection.ltr,
26 | );
27 | textPainter.layout(maxWidth: maxWidth);
28 | return textPainter;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/lib/mixin/MyScrollPhysics.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/cupertino.dart';
2 |
3 | class MyScrollPhysics extends ScrollPhysics {
4 | /// Creates scroll physics that always lets the user scroll.
5 | const MyScrollPhysics({ScrollPhysics? parent}) : super(parent: parent);
6 |
7 | @override
8 | MyScrollPhysics applyTo(ScrollPhysics? ancestor) {
9 | return MyScrollPhysics(parent: buildParent(ancestor));
10 | }
11 |
12 | @override
13 | bool shouldAcceptUserOffset(ScrollMetrics position) {
14 | if (position.outOfRange && position.pixels > position.maxScrollExtent) {
15 | return false;
16 | }
17 | return true;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/lib/mixin/address_mixin.dart:
--------------------------------------------------------------------------------
1 | //
2 | // LocationMixin.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/9/1 11:40.
6 | // Copyright © 2024/9/1 shang. All rights reserved.
7 | //
8 |
9 | // 定义一个 mixin,提供地址属性和相关方法
10 | import 'package:flutter/cupertino.dart';
11 | import 'package:flutter_templet_project/vendor/amap_location/location_detail_model.dart';
12 |
13 | /// 为模型附加属性
14 | mixin AddressMixin {
15 | // 添加一个新属性 address
16 | LocationDetailModel? _address;
17 |
18 | LocationDetailModel? get address => _address;
19 |
20 | set address(LocationDetailModel? value) {
21 | _address = value;
22 | }
23 |
24 | // 打印地址信息的方法
25 | void printAddress() {
26 | if (_address != null) {
27 | debugPrint('$this Address: ${address?.toJson()}');
28 | } else {
29 | debugPrint('$this Address is not set.');
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/mixin/equal_identical_mixin.dart:
--------------------------------------------------------------------------------
1 | //
2 | // EqualIdenticalMixin.dart
3 | // projects
4 | //
5 | // Created by shang on 2024/11/27 09:31.
6 | // Copyright © 2024/11/27 shang. All rights reserved.
7 | //
8 |
9 |
10 | /// 相等性判断(是否对象相同)
11 | mixin EqualIdenticalMixin {
12 |
13 | @override
14 | bool operator ==(Object other) {
15 | throw UnimplementedError("❌$this 未实现 == 运算符重载");
16 | }
17 |
18 | @override
19 | int get hashCode => throw UnimplementedError("❌$this 未实现 hashCode");
20 | }
21 |
22 |
--------------------------------------------------------------------------------
/lib/mixin/safe_set_state_mixin.dart:
--------------------------------------------------------------------------------
1 | //
2 | // SafeSetStateMixin.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/2/22 14:26.
6 | // Copyright © 2024/2/22 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | /// 重写方法,避免页面退出之后方法 调用导致的问题
12 | mixin SafeSetStateMixin on State {
13 | /// 重写方法,避免页面退出之后调用导致的问题
14 | @override
15 | void setState(VoidCallback fn) {
16 | if (!mounted) {
17 | return;
18 | }
19 | super.setState(fn);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/lib/mixin/selectable_mixin.dart:
--------------------------------------------------------------------------------
1 | //
2 | // SelectedMixin.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/4/3 17:55.
6 | // Copyright © 2024/4/3 shang. All rights reserved.
7 | //
8 |
9 | /// 带有选择属性的 Mixin
10 | mixin SelectableMixin {
11 | /// 唯一性id,做对比
12 | String get selectableId;
13 |
14 | /// 名称显示
15 | String get selectableName;
16 |
17 | /// 是否可用
18 | bool get enable => true;
19 |
20 | /// 是否已选择
21 | bool _isSelected = false;
22 |
23 | bool get isSelected => _isSelected;
24 |
25 | set isSelected(bool value) {
26 | _isSelected = value;
27 | }
28 |
29 | Map toJson() {
30 | throw UnimplementedError("❌$this 未实现 toJson");
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/mixin/timings_mixin.dart:
--------------------------------------------------------------------------------
1 | //
2 | // TimingsMixin.dart
3 | // yl_patient_app
4 | //
5 | // Created by shang on 2024/6/12 11:12.
6 | // Copyright © 2024/6/12 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:async';
10 |
11 | import 'package:flutter/cupertino.dart';
12 | import 'package:flutter/scheduler.dart';
13 |
14 | /// fps
15 | mixin TimingsMixin on State {
16 | @override
17 | void initState() {
18 | super.initState();
19 | SchedulerBinding.instance.addTimingsCallback(onTimings);
20 | }
21 |
22 | @override
23 | void dispose() {
24 | SchedulerBinding.instance.removeTimingsCallback(onTimings);
25 | super.dispose();
26 | }
27 |
28 | void onTimings(List timings) {
29 | throw UnimplementedError(
30 | "❌: $this 未实现 onTimings(List timings)");
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/model/selected_model.dart:
--------------------------------------------------------------------------------
1 | ///选择通用模型
2 | class SelectModel {
3 | SelectModel({
4 | required this.id,
5 | required this.name,
6 | this.data,
7 | this.isSelected = false,
8 | });
9 |
10 | String? id;
11 |
12 | String? name;
13 |
14 | bool? isSelected;
15 |
16 | /// 通用数据
17 | T? data;
18 |
19 | SelectModel.fromJson(Map? json) {
20 | if (json == null) {
21 | return;
22 | }
23 | id = json['id'];
24 | name = json['title'];
25 | isSelected = json['isSelected'];
26 | }
27 |
28 | Map toJson() {
29 | final data = Map();
30 | data['id'] = id;
31 | data['title'] = name;
32 | data['isSelected'] = isSelected;
33 | return data;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/lib/model/student.dart:
--------------------------------------------------------------------------------
1 | class StudentClassroom {
2 | String? name;
3 | int? id;
4 |
5 | StudentClassroom({this.name, this.id});
6 | }
7 |
8 | class StudentTeacher {
9 | String? name;
10 | int? age;
11 |
12 | StudentTeacher({
13 | this.name,
14 | this.age,
15 | });
16 | }
17 |
18 | class Student {
19 | //JsonName:score
20 | int? score;
21 |
22 | //JsonName:teachers
23 | List? teachers;
24 |
25 | //JsonName:name
26 | String? name;
27 |
28 | //JsonName:classroom
29 | StudentClassroom? classroom;
30 |
31 | //JsonName:id
32 | String? id;
33 |
34 | Student({
35 | this.score,
36 | this.teachers,
37 | this.name,
38 | this.classroom,
39 | this.id,
40 | });
41 | }
42 |
--------------------------------------------------------------------------------
/lib/network/RequestError.dart:
--------------------------------------------------------------------------------
1 | //
2 | // RequestError.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2023/11/16 16:14.
6 | // Copyright © 2023/11/16 shang. All rights reserved.
7 | //
8 |
9 | /// 网络错误
10 | enum RequestError {
11 | unknown("未知错误"),
12 | jsonError("JSON解析错误"),
13 | paramsError("参数错误"),
14 | urlError("请求链接异常"),
15 | timeout("请求超时。"),
16 | networkError("网络错误,请稍后再试"),
17 | notNetwork("无法连接到网络"),
18 | serverError("服务器响应超时,请稍后再试"),
19 | cancel("取消网络请求");
20 |
21 | const RequestError(this.desc);
22 | final String desc;
23 | }
24 |
25 | enum RequestStatusCode {
26 | code401("校验失败!"),
27 | code403("无权限访问!"),
28 | code404("404未找到!"),
29 | code500("服务器内部错误!"),
30 | code502("服务器内部错误!");
31 |
32 | const RequestStatusCode(this.desc);
33 | final String desc;
34 | }
35 |
--------------------------------------------------------------------------------
/lib/network/dio_ext.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 |
3 | import 'package:dio/dio.dart';
4 |
5 | extension ResponseExt on Response {
6 | /// 请求调试信息
7 | String toDescription() {
8 | var jsonStr = data;
9 | try {
10 | jsonStr = jsonEncode(data);
11 | } catch (e) {
12 | jsonStr = e.toString();
13 | }
14 |
15 | return """----------------------------------
16 | requestUrl: ${requestOptions.path},
17 | method: ${requestOptions.method},
18 | header: ${jsonEncode(requestOptions.headers)},
19 | params: ${jsonEncode(requestOptions.data ?? requestOptions.queryParameters)},
20 | jsonStr:
21 | $jsonStr
22 | """;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/lib/network/oss/oss_auth_api.dart:
--------------------------------------------------------------------------------
1 | //
2 | // OssAuthApi.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/6/21 21:54.
6 | // Copyright © 2024/6/21 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter_templet_project/network/base_request_api.dart';
10 |
11 | class OssAuthApi extends BaseRequestAPI {
12 | OssAuthApi();
13 |
14 | @override
15 | String get requestURI {
16 | const url = '*/oss/auth/sts';
17 | return url;
18 | }
19 |
20 | @override
21 | HttpMethod get requestType => HttpMethod.GET;
22 | }
23 |
--------------------------------------------------------------------------------
/lib/pages/demo/APPForgetPwdPage.dart:
--------------------------------------------------------------------------------
1 | //
2 | // APPForgetPwdPage.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 6/3/21 10:48 AM.
6 | // Copyright © 6/3/21 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/cupertino.dart';
10 | import 'package:flutter/material.dart';
11 |
12 | class APPForgetPwdPage extends StatefulWidget {
13 | final String? title;
14 |
15 | const APPForgetPwdPage({Key? key, this.title}) : super(key: key);
16 |
17 | @override
18 | _APPForgetPwdPageState createState() => _APPForgetPwdPageState();
19 | }
20 |
21 | class _APPForgetPwdPageState extends State {
22 | @override
23 | Widget build(BuildContext context) {
24 | dynamic arguments = ModalRoute.of(context)!.settings.arguments;
25 |
26 | return Scaffold(
27 | appBar: AppBar(
28 | title: Text(widget.title ?? "$widget"),
29 | ),
30 | body: Text(arguments.toString()));
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/lib/pages/demo/CirclePainter.dart:
--------------------------------------------------------------------------------
1 | //
2 | // CirclePainter.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 12/14/21 11:04 AM.
6 | // Copyright © 12/14/21 shang. All rights reserved.
7 | //
8 |
9 | import 'dart:math';
10 |
11 | import 'package:flutter/material.dart';
12 |
13 | class CirclePainter extends CustomPainter {
14 | CirclePainter({
15 | this.color = Colors.black,
16 | });
17 |
18 | final Color color;
19 |
20 | @override
21 | bool hitTest(Offset position) => true;
22 |
23 | @override
24 | bool shouldRepaint(CirclePainter oldDelegate) {
25 | return oldDelegate.color != color;
26 | }
27 |
28 | @override
29 | void paint(Canvas canvas, Size size) {
30 | var paint = Paint()
31 | ..color = color
32 | ..style = PaintingStyle.fill;
33 |
34 | final point = Offset(size.width * 0.5, size.height * 0.5);
35 | canvas.drawCircle(point, min(size.width, size.height) * 0.5, paint);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/lib/pages/demo/RotatedBoxDemo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class RotatedBoxDemo extends StatefulWidget {
4 | final String? title;
5 |
6 | const RotatedBoxDemo({Key? key, this.title}) : super(key: key);
7 |
8 | @override
9 | _RotatedBoxDemoState createState() => _RotatedBoxDemoState();
10 | }
11 |
12 | class _RotatedBoxDemoState extends State {
13 | @override
14 | Widget build(BuildContext context) {
15 | dynamic arguments = ModalRoute.of(context)!.settings.arguments;
16 |
17 | return Scaffold(
18 | appBar: AppBar(
19 | title: Text(widget.title ?? "$widget"),
20 | ),
21 | body: RotatedBox(
22 | quarterTurns: 3,
23 | child: const Text('Hello World!'),
24 | ),
25 | );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lib/pages/demo/ToggleableStateMixinDemo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class CustomCheckbox extends State
4 | with TickerProviderStateMixin, ToggleableStateMixin {
5 | @override
6 | Widget build(BuildContext context) {
7 | // TODO: implement build
8 | throw UnimplementedError();
9 | }
10 |
11 | @override
12 | // TODO: implement onChanged
13 | ValueChanged? get onChanged => throw UnimplementedError();
14 |
15 | @override
16 | // TODO: implement tristate
17 | bool get tristate => throw UnimplementedError();
18 |
19 | @override
20 | // TODO: implement value
21 | bool? get value => throw UnimplementedError();
22 | }
23 |
--------------------------------------------------------------------------------
/lib/provider/color_filtered_provider.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class ColorFilteredProvider with ChangeNotifier {
4 | Color color = Colors.transparent; //默认透明
5 |
6 | ///设置过滤后的颜色
7 | setColor(Color value) {
8 | color = value;
9 | notifyListeners();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/lib/routes/InitialBinding.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_templet_project/pages/app_tab_bar_controller.dart';
2 | import 'package:get/get.dart';
3 | import 'package:get/get_instance/src/bindings_interface.dart';
4 |
5 | class InitialBinding implements Bindings {
6 | @override
7 | void dependencies() {
8 | Get.put(AppTabBarController(), permanent: true);
9 | // Get.lazyPut(() => LoginController(LoginRepo()), fenix: true);
10 | // Get.lazyPut(() => HomeController(HomeRepo()), fenix: true);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/lib/util/Codable.dart:
--------------------------------------------------------------------------------
1 | abstract class Codable {
2 | // factory Codable(Map? json) {
3 | // throw UnimplementedError();
4 | // }
5 |
6 | // Codable.fromJson(Map? json) {
7 | // throw UnimplementedError();
8 | // }
9 |
10 | factory Codable.fromJson(Map json) {
11 | throw UnimplementedError();
12 | }
13 |
14 | Map toJson() {
15 | throw UnimplementedError();
16 | }
17 | }
18 |
19 | class XYZModel implements Codable {
20 | XYZModel({
21 | this.id,
22 | this.name,
23 | });
24 | String? id;
25 | String? name;
26 |
27 | XYZModel.fromJson(Map? json) {
28 | if (json == null) {
29 | return;
30 | }
31 |
32 | id = json["id"];
33 | name = json["name"];
34 | }
35 |
36 | @override
37 | Map toJson() {
38 | // TODO: implement toJson
39 | throw UnimplementedError();
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/lib/util/Throttle.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/foundation.dart';
2 |
3 | /// 事件节流
4 | class Throttle {
5 | Throttle({
6 | this.delay = const Duration(milliseconds: 1000),
7 | });
8 |
9 | final Duration delay;
10 |
11 | int? _lastActionTime;
12 |
13 | call(VoidCallback cb) {
14 | if (_lastActionTime == null) {
15 | cb();
16 | _lastActionTime = DateTime.now().millisecondsSinceEpoch;
17 | } else {
18 | if (DateTime.now().millisecondsSinceEpoch - _lastActionTime! >
19 | delay.inMilliseconds) {
20 | cb();
21 | _lastActionTime = DateTime.now().millisecondsSinceEpoch;
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/util/fade_page_route.dart:
--------------------------------------------------------------------------------
1 | //
2 | // CustomeMaterialPageRoute.dart
3 | // flutter_templet_project
4 | //
5 | // Created by shang on 2024/7/12 23:19.
6 | // Copyright © 2024/7/12 shang. All rights reserved.
7 | //
8 |
9 | import 'package:flutter/material.dart';
10 |
11 | class FadePageRoute extends MaterialPageRoute {
12 | FadePageRoute({
13 | required WidgetBuilder builder,
14 | RouteSettings? settings,
15 | }) : super(builder: builder, settings: settings);
16 |
17 | // final CupertinoPageTransitionsBuilder
18 |
19 | @override
20 | Widget buildTransitions(BuildContext context, Animation animation,
21 | Animation secondaryAnimation, Widget child) {
22 | return FadeTransition(opacity: animation, child: child);
23 | }
24 |
25 | @override
26 | Duration get transitionDuration => const Duration(milliseconds: 300);
27 | }
28 |
--------------------------------------------------------------------------------
/lib/vendor/SVGAImageDemo.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:svgaplayer_flutter/svgaplayer_flutter.dart';
3 |
4 | class SvgaImageDemo extends StatefulWidget {
5 | final String? title;
6 |
7 | const SvgaImageDemo({Key? key, this.title}) : super(key: key);
8 |
9 | @override
10 | _SvgaImageDemoState createState() => _SvgaImageDemoState();
11 | }
12 |
13 | class _SvgaImageDemoState extends State {
14 | @override
15 | Widget build(BuildContext context) {
16 | dynamic arguments = ModalRoute.of(context)!.settings.arguments;
17 |
18 | return Scaffold(
19 | appBar: AppBar(
20 | title: Text(widget.title ?? "$widget"),
21 | ),
22 | body: buildBody(),
23 | );
24 | }
25 |
26 | Widget buildBody() {
27 | return Container(
28 | child: SVGASimpleImage(
29 | resUrl:
30 | "https://github.com/yyued/SVGA-Samples/blob/master/angel.svga?raw=true"),
31 | );
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/lib/vendor/azlistview/common/index.dart:
--------------------------------------------------------------------------------
1 | export 'models.dart';
2 | export 'utils.dart';
3 | export 'res.dart';
4 |
5 | export 'dart:convert';
6 |
7 | export 'package:common_utils/common_utils.dart';
8 |
9 | export 'package:lpinyin/lpinyin.dart';
10 |
--------------------------------------------------------------------------------
/lib/vendor/azlistview/common/res.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | class Colours {
4 | static const Color gray_33 = Color(0xFF333333);
5 | static const Color gray_66 = Color(0xFF666666);
6 | static const Color gray_99 = Color(0xFF999999);
7 | }
8 |
--------------------------------------------------------------------------------
/lib/vendor/azlistview/ui/index.dart:
--------------------------------------------------------------------------------
1 | export 'page_scaffold.dart';
2 | export 'github_language_page.dart';
3 | export 'contacts_page.dart';
4 | export 'contacts_list_page.dart';
5 | export 'citylist_page.dart';
6 | export 'citylist_custom_header_page.dart';
7 | export 'car_models_page.dart';
8 | export 'large_data_page.dart';
9 |
--------------------------------------------------------------------------------
/lib/vendor/getx/order_controller.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 |
3 | import 'package:flutter/material.dart';
4 | import 'package:get/get.dart';
5 |
6 | /// 订单逻辑类
7 | class OrderController extends GetxController {
8 | /// 重写方法,避免页面退出之后的 update 调用导致的问题
9 | @override
10 | void update([List