├── lib ├── ui │ ├── test_page.dart │ ├── mine │ │ ├── model │ │ │ ├── pointEcmdModel.dart │ │ │ ├── minePageItems.dart │ │ │ ├── phoneStatusModel.dart │ │ │ ├── addressItem.dart │ │ │ ├── layawayModel.dart │ │ │ ├── pointEcmdModel.g.dart │ │ │ ├── locationItemModel.dart │ │ │ ├── couponItemModel.dart │ │ │ ├── minePageItems.g.dart │ │ │ ├── phoneStatusModel.g.dart │ │ │ └── addressItem.g.dart │ │ └── components │ │ │ └── head_portrait.dart │ ├── component │ │ ├── model │ │ │ ├── normalSearchModel.dart │ │ │ └── searchParamModel.dart │ │ └── sliverAppBarDelegate.dart │ ├── sort │ │ └── model │ │ │ ├── bannerItem.dart │ │ │ ├── categoryL1Item.dart │ │ │ ├── categoryGroupItem.dart │ │ │ ├── hotListModel.dart │ │ │ ├── subCateListItem.dart │ │ │ ├── listPromBanner.dart │ │ │ ├── sortListData.dart │ │ │ ├── sortlistCategoryItem.dart │ │ │ ├── sortData.dart │ │ │ ├── bannerItem.g.dart │ │ │ ├── searchResultModel.dart │ │ │ ├── categoryL1Item.g.dart │ │ │ ├── categoryGroupItem.g.dart │ │ │ ├── sortListData.g.dart │ │ │ ├── currentCategory.dart │ │ │ ├── hotListModel.g.dart │ │ │ ├── sortlistCategoryItem.g.dart │ │ │ ├── sortData.g.dart │ │ │ └── subCateListItem.g.dart │ ├── goods_detail │ │ ├── model │ │ │ ├── finalPrice.dart │ │ │ ├── commentItem.dart │ │ │ ├── issueListItem.dart │ │ │ ├── shoppingReward.dart │ │ │ ├── skuSpecValue.dart │ │ │ ├── interstItemModel.dart │ │ │ ├── priceModel.dart │ │ │ ├── bannerInfo.dart │ │ │ ├── brandIndexModel.dart │ │ │ ├── wapitemDeliveryModel.dart │ │ │ ├── skuSpecListItem.dart │ │ │ ├── hdrkDetailVOListItem.dart │ │ │ ├── goodDetailPre.dart │ │ │ ├── skuSpec.dart │ │ │ ├── itemSizeDetailModel.dart │ │ │ ├── issueListItem.g.dart │ │ │ ├── shoppingRewardRule.dart │ │ │ ├── commentItem.g.dart │ │ │ ├── finalPrice.g.dart │ │ │ ├── goodDetailDownData.dart │ │ │ ├── shoppingReward.g.dart │ │ │ ├── skuSpecValue.g.dart │ │ │ ├── couponModel.dart │ │ │ ├── bannerModel.dart │ │ │ ├── priceModel.g.dart │ │ │ ├── brandIndexModel.g.dart │ │ │ ├── lookCollectionModel.dart │ │ │ ├── skuSpecListItem.g.dart │ │ │ ├── interstItemModel.g.dart │ │ │ ├── wapitemDeliveryModel.g.dart │ │ │ ├── bannerInfo.g.dart │ │ │ ├── commentsItem.dart │ │ │ ├── shoppingRewardRule.g.dart │ │ │ └── goodDetailPre.g.dart │ │ └── components │ │ │ └── gd_button_style.dart │ ├── home │ │ ├── model │ │ │ ├── itemPicBeanList.dart │ │ │ ├── preNewItem.dart │ │ │ ├── policyDescItem.dart │ │ │ ├── noticeListModel.dart │ │ │ ├── hotSaleListBottomInfo.dart │ │ │ ├── bigPromotionModule.dart │ │ │ ├── focusItem.dart │ │ │ ├── flashSaleModuleItem.dart │ │ │ ├── newItemTagModul.dart │ │ │ ├── tagItem.dart │ │ │ ├── styleItem.dart │ │ │ ├── categoryHotSellModule.dart │ │ │ ├── newItemModel.dart │ │ │ ├── homeRecommendList.dart │ │ │ ├── categoryItemListItem.dart │ │ │ ├── sceneLightShoppingGuideModule.dart │ │ │ ├── indexActivityModule.dart │ │ │ ├── kingkongModel.dart │ │ │ ├── floorItem.dart │ │ │ ├── flashSaleModule.dart │ │ │ ├── itemPicBeanList.g.dart │ │ │ ├── kingKongModule.dart │ │ │ ├── versionModel.dart │ │ │ ├── bigPromotionModule.g.dart │ │ │ ├── hotSaleListBottomInfo.g.dart │ │ │ ├── policyDescItem.g.dart │ │ │ ├── globalModel.dart │ │ │ ├── noticeListModel.g.dart │ │ │ ├── preNewItem.g.dart │ │ │ ├── newUserGiftModel.dart │ │ │ ├── cells.dart │ │ │ ├── categoryItemListItem.g.dart │ │ │ ├── kingkongModel.g.dart │ │ │ ├── categoryHotSellModule.g.dart │ │ │ ├── homeRecommendList.g.dart │ │ │ ├── flashSaleModuleItem.g.dart │ │ │ ├── sceneLightShoppingGuideModule.g.dart │ │ │ ├── newItemModel.g.dart │ │ │ ├── focusItem.g.dart │ │ │ ├── newItemTagModul.g.dart │ │ │ ├── floorItem.g.dart │ │ │ ├── tagItem.g.dart │ │ │ └── styleItem.g.dart │ │ └── qr_code_result.dart │ ├── topic │ │ └── model │ │ │ ├── result.dart │ │ │ ├── topNavData.dart │ │ │ ├── buyNow.dart │ │ │ ├── topicData.dart │ │ │ ├── navItem.dart │ │ │ ├── topicData.g.dart │ │ │ ├── topNavData.g.dart │ │ │ ├── result.g.dart │ │ │ ├── topicItem.dart │ │ │ ├── buyNow.g.dart │ │ │ └── navItem.g.dart │ ├── shopping_cart │ │ ├── model │ │ │ ├── itemPoolBarModel.dart │ │ │ ├── postageVO.dart │ │ │ ├── giftStepListItem.dart │ │ │ ├── shoppingCartModel.dart │ │ │ ├── itemPoolBarModel.g.dart │ │ │ ├── makeUpCartInfoModel.dart │ │ │ ├── postageVO.g.dart │ │ │ ├── carItem.dart │ │ │ └── giftStepListItem.g.dart │ │ └── components │ │ │ ├── empty_cart_widget.dart │ │ │ └── cart_num_filed.dart │ ├── pin │ │ ├── model │ │ │ ├── pinRecommonModel.dart │ │ │ └── pinRecommonModel.g.dart │ │ └── components │ │ │ └── ruleWidget.dart │ ├── userInfo │ │ └── model │ │ │ ├── qrCodeModel.dart │ │ │ ├── sizeItemModel.dart │ │ │ ├── accountMGModel.dart │ │ │ ├── qrCodeModel.g.dart │ │ │ └── userInfoModel.dart │ ├── error_page.dart │ └── login │ │ └── index.dart ├── constant │ ├── fontsize.dart │ ├── btn_height.dart │ └── statusbar_style.dart ├── global │ ├── scrollState.dart │ └── goodDetailState.dart ├── main │ └── mainContex.dart ├── utils │ ├── eventbus_constans.dart │ ├── time_util.dart │ ├── renderBoxUtil.dart │ ├── price_util.dart │ ├── user_config.dart │ ├── color_util.dart │ ├── constans.dart │ ├── something.txt │ └── local_storage.dart ├── http_manager │ ├── http_util.dart │ └── net_contants.dart ├── channel │ ├── index.dart │ ├── installPlugin.dart │ └── globalCookie.dart ├── model │ ├── tabModel.dart │ ├── topLogo.dart │ ├── pagination.dart │ ├── tabGroupModel.dart │ ├── itemTagListItem.dart │ ├── categoryL1ListItem.dart │ ├── tabModel.g.dart │ ├── couponItem.dart │ ├── topLogo.g.dart │ ├── category.dart │ ├── pagination.g.dart │ ├── tabGroupModel.g.dart │ ├── orderCartItem.dart │ ├── saturdayBuyModel.dart │ └── itemTagListItem.g.dart └── component │ ├── loading.dart │ ├── back_loading.dart │ ├── transport_loading.dart │ ├── page_loading.dart │ ├── slivers.dart │ ├── global.dart │ ├── img_error.dart │ ├── normal_footer.dart │ ├── img_palceholder.dart │ ├── my_vertical_text.dart │ ├── sliver_footer.dart │ └── line_title.dart ├── android ├── res │ └── values │ │ └── strings_en.arb ├── key.jks ├── vcbalias ├── app │ └── src │ │ ├── main │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── open.png │ │ │ │ └── launch_background.xml │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── xml │ │ │ │ └── provider_install_paths.xml │ │ │ ├── layout │ │ │ │ └── webview.xml │ │ │ └── values │ │ │ │ └── styles.xml │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── want │ │ │ ├── Consts.kt │ │ │ ├── MainActivity.kt │ │ │ └── WebViewActivity.kt │ │ ├── profile │ │ └── AndroidManifest.xml │ │ └── debug │ │ └── AndroidManifest.xml ├── .gitignore ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── build.gradle └── settings.gradle ├── ios ├── Flutter │ ├── .last_build_id │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── AppFrameworkInfo.plist ├── Runner │ ├── Runner-Bridging-Header.h │ ├── installPlugin │ │ ├── InstallPlugin.h │ │ └── InstallPlugin.m │ ├── Assets.xcassets │ │ ├── LaunchImage.imageset │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ ├── README.md │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── 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-1024x1024@1x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ ├── GlobleCookie │ │ └── GloableCookie.h │ ├── AppDelegate.swift │ ├── CustomPluginRegistrant.h │ └── CustomPluginRegistrant.m ├── Runner.xcodeproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── .gitignore ├── assets └── images │ ├── back.png │ ├── close.png │ ├── dcp.png │ ├── good.png │ ├── kefu.png │ ├── more.png │ ├── oppen.png │ ├── safe.png │ ├── timg.jpg │ ├── week.png │ ├── zan.png │ ├── address.png │ ├── collect.png │ ├── delete.png │ ├── hongbao.png │ ├── huiyuan.png │ ├── issure.png │ ├── ji_kouh.png │ ├── ji_pro.png │ ├── launch.jpg │ ├── logout.png │ ├── openAd.jpg │ ├── qq_icon.png │ ├── qr_scan.png │ ├── refresh.png │ ├── sort_up.png │ ├── app_down.png │ ├── apple_icon.png │ ├── arrow_down.png │ ├── arrow_up.png │ ├── bar_code.png │ ├── cart_none.png │ ├── clear_icon.png │ ├── dec_icon.png │ ├── edit_icon.png │ ├── email_icon.png │ ├── error_img.png │ ├── flash_icon.png │ ├── good_red.png │ ├── has_coupon.png │ ├── house_icon.png │ ├── ji_chouj.png │ ├── lingquan.png │ ├── logo_text.png │ ├── menu_icon.png │ ├── mine │ ├── about.png │ ├── kefu.png │ ├── qr_icon.png │ ├── setting.png │ └── mine_page_qr.png │ ├── no_banner.png │ ├── no_coupon.png │ ├── no_order.png │ ├── phone_icon.png │ ├── pin_home.png │ ├── pro_icon.png │ ├── sort_dft.png │ ├── sort_down.png │ ├── topic_icon.png │ ├── video_play.png │ ├── vip_back.png │ ├── weibo_icon.png │ ├── zan_nomal.png │ ├── zan_true.png │ ├── ziying_tag.png │ ├── address_line.png │ ├── arrow_right.png │ ├── boduoxiaojie.png │ ├── circle_close.png │ ├── commond_look.png │ ├── coupon_line.png │ ├── home_loading.png │ ├── no_gift_card.png │ ├── notice_icon.png │ ├── point_banner.png │ ├── sanjicaihua.png │ ├── search_icon.png │ ├── wechat_icon.png │ ├── call_phone_icon.png │ ├── detail_vip_icon.png │ ├── logo_and_text.png │ ├── pin_mian_rule.png │ ├── point_banner2.png │ ├── redpackage_back.png │ ├── redpackage_top.png │ ├── service │ ├── huanhuo.png │ ├── tuihuo.png │ ├── tuikuan.png │ ├── weixiu.png │ ├── fapiaofuwu.png │ ├── jiagebaohu.png │ ├── shouhoujilu.png │ └── zaixiankefu.png │ ├── stadurday_buy.png │ ├── topic_look_icon.png │ ├── vip_center_back.png │ ├── vip_gift_icon.png │ ├── good_detail_home.png │ ├── search_edit_icon.png │ ├── user │ ├── mine_item_1.png │ ├── mine_item_10.png │ ├── mine_item_11.png │ ├── mine_item_12.png │ ├── mine_item_13.png │ ├── mine_item_14.png │ ├── mine_item_2.png │ ├── mine_item_3.png │ ├── mine_item_4.png │ ├── mine_item_5.png │ ├── mine_item_6.png │ ├── mine_item_7.png │ ├── mine_item_8.png │ └── mine_item_9.png │ ├── user_header_back.png │ ├── youhuiquan_n_line.png │ ├── balance_header_back.png │ ├── ic_tab_cart_active.png │ ├── ic_tab_cart_normal.png │ ├── ic_tab_group_active.png │ ├── ic_tab_group_normal.png │ ├── ic_tab_home_active.png │ ├── ic_tab_home_normal.png │ ├── ic_tab_shiji_active.png │ ├── ic_tab_shiji_normal.png │ ├── jintie_header_back.png │ ├── lipinka_header_back.png │ ├── topic_header_back.jpeg │ ├── ic_tab_profile_active.png │ ├── ic_tab_profile_normal.png │ ├── ic_tab_subject_active.png │ ├── ic_tab_subject_normal.png │ └── vip_center_monthitem_back.png ├── fonts └── DINAlternateBold.ttf ├── screenshot ├── wechatimg87.jpeg ├── wechatimg89.jpeg ├── wechatimg91.jpg ├── wechatimg92.jpg ├── wechatimg93.jpeg ├── wechatimg94.jpeg ├── wechatimg95.jpeg └── wechatimg98.jpeg ├── .metadata ├── .gitignore └── test └── widget_test.dart /lib/ui/test_page.dart: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android/res/values/strings_en.arb: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /ios/Flutter/.last_build_id: -------------------------------------------------------------------------------- 1 | 0da66ce1ce73f38e1a30a065aeba0ab7 -------------------------------------------------------------------------------- /lib/constant/fontsize.dart: -------------------------------------------------------------------------------- 1 | enum FontSize { small, normal, big } 2 | -------------------------------------------------------------------------------- /android/key.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/android/key.jks -------------------------------------------------------------------------------- /android/vcbalias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/android/vcbalias -------------------------------------------------------------------------------- /lib/global/scrollState.dart: -------------------------------------------------------------------------------- 1 | enum ScrollState { 2 | shoppingCart, 3 | toTop, 4 | NULL, 5 | } 6 | -------------------------------------------------------------------------------- /assets/images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/back.png -------------------------------------------------------------------------------- /assets/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/close.png -------------------------------------------------------------------------------- /assets/images/dcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/dcp.png -------------------------------------------------------------------------------- /assets/images/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/good.png -------------------------------------------------------------------------------- /assets/images/kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/kefu.png -------------------------------------------------------------------------------- /assets/images/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/more.png -------------------------------------------------------------------------------- /assets/images/oppen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/oppen.png -------------------------------------------------------------------------------- /assets/images/safe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/safe.png -------------------------------------------------------------------------------- /assets/images/timg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/timg.jpg -------------------------------------------------------------------------------- /assets/images/week.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/week.png -------------------------------------------------------------------------------- /assets/images/zan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/zan.png -------------------------------------------------------------------------------- /assets/images/address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/address.png -------------------------------------------------------------------------------- /assets/images/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/collect.png -------------------------------------------------------------------------------- /assets/images/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/delete.png -------------------------------------------------------------------------------- /assets/images/hongbao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/hongbao.png -------------------------------------------------------------------------------- /assets/images/huiyuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/huiyuan.png -------------------------------------------------------------------------------- /assets/images/issure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/issure.png -------------------------------------------------------------------------------- /assets/images/ji_kouh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ji_kouh.png -------------------------------------------------------------------------------- /assets/images/ji_pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ji_pro.png -------------------------------------------------------------------------------- /assets/images/launch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/launch.jpg -------------------------------------------------------------------------------- /assets/images/logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/logout.png -------------------------------------------------------------------------------- /assets/images/openAd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/openAd.jpg -------------------------------------------------------------------------------- /assets/images/qq_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/qq_icon.png -------------------------------------------------------------------------------- /assets/images/qr_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/qr_scan.png -------------------------------------------------------------------------------- /assets/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/refresh.png -------------------------------------------------------------------------------- /assets/images/sort_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/sort_up.png -------------------------------------------------------------------------------- /assets/images/app_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/app_down.png -------------------------------------------------------------------------------- /assets/images/apple_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/apple_icon.png -------------------------------------------------------------------------------- /assets/images/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/arrow_down.png -------------------------------------------------------------------------------- /assets/images/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/arrow_up.png -------------------------------------------------------------------------------- /assets/images/bar_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/bar_code.png -------------------------------------------------------------------------------- /assets/images/cart_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/cart_none.png -------------------------------------------------------------------------------- /assets/images/clear_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/clear_icon.png -------------------------------------------------------------------------------- /assets/images/dec_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/dec_icon.png -------------------------------------------------------------------------------- /assets/images/edit_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/edit_icon.png -------------------------------------------------------------------------------- /assets/images/email_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/email_icon.png -------------------------------------------------------------------------------- /assets/images/error_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/error_img.png -------------------------------------------------------------------------------- /assets/images/flash_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/flash_icon.png -------------------------------------------------------------------------------- /assets/images/good_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/good_red.png -------------------------------------------------------------------------------- /assets/images/has_coupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/has_coupon.png -------------------------------------------------------------------------------- /assets/images/house_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/house_icon.png -------------------------------------------------------------------------------- /assets/images/ji_chouj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ji_chouj.png -------------------------------------------------------------------------------- /assets/images/lingquan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/lingquan.png -------------------------------------------------------------------------------- /assets/images/logo_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/logo_text.png -------------------------------------------------------------------------------- /assets/images/menu_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/menu_icon.png -------------------------------------------------------------------------------- /assets/images/mine/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/mine/about.png -------------------------------------------------------------------------------- /assets/images/mine/kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/mine/kefu.png -------------------------------------------------------------------------------- /assets/images/no_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/no_banner.png -------------------------------------------------------------------------------- /assets/images/no_coupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/no_coupon.png -------------------------------------------------------------------------------- /assets/images/no_order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/no_order.png -------------------------------------------------------------------------------- /assets/images/phone_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/phone_icon.png -------------------------------------------------------------------------------- /assets/images/pin_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/pin_home.png -------------------------------------------------------------------------------- /assets/images/pro_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/pro_icon.png -------------------------------------------------------------------------------- /assets/images/sort_dft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/sort_dft.png -------------------------------------------------------------------------------- /assets/images/sort_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/sort_down.png -------------------------------------------------------------------------------- /assets/images/topic_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/topic_icon.png -------------------------------------------------------------------------------- /assets/images/video_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/video_play.png -------------------------------------------------------------------------------- /assets/images/vip_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/vip_back.png -------------------------------------------------------------------------------- /assets/images/weibo_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/weibo_icon.png -------------------------------------------------------------------------------- /assets/images/zan_nomal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/zan_nomal.png -------------------------------------------------------------------------------- /assets/images/zan_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/zan_true.png -------------------------------------------------------------------------------- /assets/images/ziying_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ziying_tag.png -------------------------------------------------------------------------------- /fonts/DINAlternateBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/fonts/DINAlternateBold.ttf -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | #import "CustomPluginRegistrant.h" 3 | -------------------------------------------------------------------------------- /lib/global/goodDetailState.dart: -------------------------------------------------------------------------------- 1 | enum GoodDetailState { 2 | good, 3 | comment, 4 | detail, 5 | RCM, 6 | } 7 | -------------------------------------------------------------------------------- /screenshot/wechatimg87.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg87.jpeg -------------------------------------------------------------------------------- /screenshot/wechatimg89.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg89.jpeg -------------------------------------------------------------------------------- /screenshot/wechatimg91.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg91.jpg -------------------------------------------------------------------------------- /screenshot/wechatimg92.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg92.jpg -------------------------------------------------------------------------------- /screenshot/wechatimg93.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg93.jpeg -------------------------------------------------------------------------------- /screenshot/wechatimg94.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg94.jpeg -------------------------------------------------------------------------------- /screenshot/wechatimg95.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg95.jpeg -------------------------------------------------------------------------------- /screenshot/wechatimg98.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/screenshot/wechatimg98.jpeg -------------------------------------------------------------------------------- /assets/images/address_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/address_line.png -------------------------------------------------------------------------------- /assets/images/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/arrow_right.png -------------------------------------------------------------------------------- /assets/images/boduoxiaojie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/boduoxiaojie.png -------------------------------------------------------------------------------- /assets/images/circle_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/circle_close.png -------------------------------------------------------------------------------- /assets/images/commond_look.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/commond_look.png -------------------------------------------------------------------------------- /assets/images/coupon_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/coupon_line.png -------------------------------------------------------------------------------- /assets/images/home_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/home_loading.png -------------------------------------------------------------------------------- /assets/images/mine/qr_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/mine/qr_icon.png -------------------------------------------------------------------------------- /assets/images/mine/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/mine/setting.png -------------------------------------------------------------------------------- /assets/images/no_gift_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/no_gift_card.png -------------------------------------------------------------------------------- /assets/images/notice_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/notice_icon.png -------------------------------------------------------------------------------- /assets/images/point_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/point_banner.png -------------------------------------------------------------------------------- /assets/images/sanjicaihua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/sanjicaihua.png -------------------------------------------------------------------------------- /assets/images/search_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/search_icon.png -------------------------------------------------------------------------------- /assets/images/wechat_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/wechat_icon.png -------------------------------------------------------------------------------- /assets/images/call_phone_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/call_phone_icon.png -------------------------------------------------------------------------------- /assets/images/detail_vip_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/detail_vip_icon.png -------------------------------------------------------------------------------- /assets/images/logo_and_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/logo_and_text.png -------------------------------------------------------------------------------- /assets/images/pin_mian_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/pin_mian_rule.png -------------------------------------------------------------------------------- /assets/images/point_banner2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/point_banner2.png -------------------------------------------------------------------------------- /assets/images/redpackage_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/redpackage_back.png -------------------------------------------------------------------------------- /assets/images/redpackage_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/redpackage_top.png -------------------------------------------------------------------------------- /assets/images/service/huanhuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/huanhuo.png -------------------------------------------------------------------------------- /assets/images/service/tuihuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/tuihuo.png -------------------------------------------------------------------------------- /assets/images/service/tuikuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/tuikuan.png -------------------------------------------------------------------------------- /assets/images/service/weixiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/weixiu.png -------------------------------------------------------------------------------- /assets/images/stadurday_buy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/stadurday_buy.png -------------------------------------------------------------------------------- /assets/images/topic_look_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/topic_look_icon.png -------------------------------------------------------------------------------- /assets/images/vip_center_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/vip_center_back.png -------------------------------------------------------------------------------- /assets/images/vip_gift_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/vip_gift_icon.png -------------------------------------------------------------------------------- /assets/images/good_detail_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/good_detail_home.png -------------------------------------------------------------------------------- /assets/images/mine/mine_page_qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/mine/mine_page_qr.png -------------------------------------------------------------------------------- /assets/images/search_edit_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/search_edit_icon.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_1.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_10.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_11.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_12.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_13.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_14.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_2.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_3.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_4.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_5.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_6.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_7.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_8.png -------------------------------------------------------------------------------- /assets/images/user/mine_item_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user/mine_item_9.png -------------------------------------------------------------------------------- /assets/images/user_header_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/user_header_back.png -------------------------------------------------------------------------------- /assets/images/youhuiquan_n_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/youhuiquan_n_line.png -------------------------------------------------------------------------------- /assets/images/balance_header_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/balance_header_back.png -------------------------------------------------------------------------------- /assets/images/ic_tab_cart_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_cart_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_cart_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_cart_normal.png -------------------------------------------------------------------------------- /assets/images/ic_tab_group_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_group_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_group_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_group_normal.png -------------------------------------------------------------------------------- /assets/images/ic_tab_home_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_home_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_home_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_home_normal.png -------------------------------------------------------------------------------- /assets/images/ic_tab_shiji_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_shiji_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_shiji_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_shiji_normal.png -------------------------------------------------------------------------------- /assets/images/jintie_header_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/jintie_header_back.png -------------------------------------------------------------------------------- /assets/images/lipinka_header_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/lipinka_header_back.png -------------------------------------------------------------------------------- /assets/images/service/fapiaofuwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/fapiaofuwu.png -------------------------------------------------------------------------------- /assets/images/service/jiagebaohu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/jiagebaohu.png -------------------------------------------------------------------------------- /assets/images/service/shouhoujilu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/shouhoujilu.png -------------------------------------------------------------------------------- /assets/images/service/zaixiankefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/service/zaixiankefu.png -------------------------------------------------------------------------------- /assets/images/topic_header_back.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/topic_header_back.jpeg -------------------------------------------------------------------------------- /assets/images/ic_tab_profile_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_profile_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_profile_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_profile_normal.png -------------------------------------------------------------------------------- /assets/images/ic_tab_subject_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_subject_active.png -------------------------------------------------------------------------------- /assets/images/ic_tab_subject_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/ic_tab_subject_normal.png -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Runner/installPlugin/InstallPlugin.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface InstallPlugin : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/android/app/src/main/res/drawable/open.png -------------------------------------------------------------------------------- /assets/images/vip_center_monthitem_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/assets/images/vip_center_monthitem_back.png -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | -------------------------------------------------------------------------------- /lib/main/mainContex.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:flutter/cupertino.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | late BuildContext mainContext; 6 | 7 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /lib/constant/btn_height.dart: -------------------------------------------------------------------------------- 1 | class BtnHeight { 2 | static const double SMALL = 45.0; 3 | static const double NORMAL = 48.0; 4 | static const double HIGH = 50.0; 5 | } 6 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/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/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /android/app/src/main/res/xml/provider_install_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/softfatgay/flutter-netease/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /lib/ui/mine/model/pointEcmdModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'pointEcmdModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PointEcmdModel { 7 | num? id; 8 | } 9 | -------------------------------------------------------------------------------- /lib/utils/eventbus_constans.dart: -------------------------------------------------------------------------------- 1 | const String REFRESH_CART_NUM = 'refresh_cart_num'; 2 | const String REFRESH_CART = 'refresh_cart'; 3 | const String REFRESH_MINE = 'refresh_mine'; 4 | const String GO_HOME = 'go_home'; 5 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lib/ui/component/model/normalSearchModel.dart: -------------------------------------------------------------------------------- 1 | class NormalSearchModel { 2 | int index; 3 | int sortType; 4 | bool? descSorted; 5 | 6 | NormalSearchModel({this.index = 0, this.sortType = 0, this.descSorted}); 7 | } 8 | -------------------------------------------------------------------------------- /lib/http_manager/http_util.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/utils/user_config.dart'; 2 | 3 | class HttpUtil { 4 | static Map getHeader() { 5 | return {"Cookie": cookie, "csrf_token": csrf_token}; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/http_manager/net_contants.dart: -------------------------------------------------------------------------------- 1 | class NetConstants { 2 | static String baseUrl = "https://m.you.163.com/"; 3 | static String baseURL = "https://m.you.163.com"; 4 | // static String baseUrl = "https://m.you.163.com/"; 5 | } 6 | -------------------------------------------------------------------------------- /lib/channel/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | 3 | const channel = MethodChannel('plugins.want.flutter.io.GloableCookie'); 4 | const installPluginChannel = 5 | MethodChannel('plugins.want.flutter.io.InstallPlugin'); 6 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/want/Consts.kt: -------------------------------------------------------------------------------- 1 | package com.example.want 2 | 3 | const val pluginKey = "plugins.want.flutter.io.GloableCookie" 4 | const val installPluginKey = "plugins.want.flutter.io.InstallPlugin" 5 | const val pluginParams = "connect_params" -------------------------------------------------------------------------------- /ios/Runner/installPlugin/InstallPlugin.m: -------------------------------------------------------------------------------- 1 | #import "InstallPlugin.h" 2 | #import "Runner-Swift.h" 3 | 4 | @implementation InstallPlugin 5 | + (void)registerWithRegistrar:(NSObject*)registrar { 6 | [SwiftInstallPlugin registerWithRegistrar:registrar]; 7 | } 8 | @end 9 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Dec 28 22:37:22 CST 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /.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: 27321ebbad34b0a3fafe99fac037102196d655ff 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /lib/model/tabModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tabModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class TabModel { 7 | num? id; 8 | String? name; 9 | String? type; 10 | 11 | TabModel(); 12 | 13 | factory TabModel.fromJson(Map json) => 14 | _$TabModelFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/utils/time_util.dart: -------------------------------------------------------------------------------- 1 | import 'package:intl/intl.dart'; 2 | 3 | class TimeUtil { 4 | static String formatLong(num? ms) { 5 | if (ms == null || ms == 0) { 6 | return ""; 7 | } 8 | final fmt = DateFormat('yyyy-MM-dd HH:mm:ss'); 9 | var format = fmt.format(DateTime.fromMillisecondsSinceEpoch(ms as int)); 10 | return format; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/model/topLogo.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'topLogo.g.dart'; 4 | 5 | @JsonSerializable() 6 | class TopLogo { 7 | String? logoUrl; 8 | num? width; 9 | num? height; 10 | num? type; 11 | 12 | TopLogo(); 13 | 14 | factory TopLogo.fromJson(Map json) => 15 | _$TopLogoFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/utils/renderBoxUtil.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class RenderBoxUtil { 4 | static double offsetY(BuildContext context, GlobalKey globalKey) { 5 | RenderBox renderObject = 6 | globalKey.currentContext!.findRenderObject() as RenderBox; 7 | var offset = renderObject.localToGlobal(Offset.zero); 8 | return offset.dy; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lib/ui/sort/model/bannerItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'bannerItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class BannerItem { 7 | num? id; 8 | String? picUrl; 9 | String? targetUrl; 10 | 11 | BannerItem(); 12 | 13 | factory BannerItem.fromJson(Map json) => 14 | _$BannerItemFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/finalPrice.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'finalPrice.g.dart'; 4 | 5 | @JsonSerializable() 6 | class FinalPrice { 7 | String? prefix; 8 | String? price; 9 | String? suffix; 10 | 11 | FinalPrice(); 12 | factory FinalPrice.fromJson(Map json) => 13 | _$FinalPriceFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/ui/home/model/itemPicBeanList.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'itemPicBeanList.g.dart'; 4 | 5 | @JsonSerializable() 6 | class ItemPicBeanList { 7 | int? itemId; 8 | String? picUrl; 9 | 10 | ItemPicBeanList(); 11 | 12 | factory ItemPicBeanList.fromJson(Map json) => 13 | _$ItemPicBeanListFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/ui/home/model/preNewItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'preNewItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PreNewItem { 7 | String? listPicUrl; 8 | num? retailPrice; 9 | String? name; 10 | num? id; 11 | PreNewItem(); 12 | factory PreNewItem.fromJson(Map json) => 13 | _$PreNewItemFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/commentItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'commentItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CommentItem { 7 | String? name; 8 | String? strCount; 9 | String? type; 10 | 11 | CommentItem(); 12 | 13 | factory CommentItem.fromJson(Map json) => 14 | _$CommentItemFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/issueListItem.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'issueListItem.g.dart'; 5 | 6 | @JsonSerializable() 7 | class IssueListItem { 8 | String? question; 9 | String? answer; 10 | 11 | IssueListItem(); 12 | 13 | factory IssueListItem.fromJson(Map json) => 14 | _$IssueListItemFromJson(json); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /lib/ui/topic/model/result.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/topic/model/topicItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'result.g.dart'; 5 | 6 | @JsonSerializable() 7 | class Result { 8 | List? topics; 9 | TopicItem? look; 10 | 11 | Result(); 12 | 13 | factory Result.fromJson(Map json) => _$ResultFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/model/pagination.dart: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | import 'package:json_annotation/json_annotation.dart'; 5 | part 'pagination.g.dart'; 6 | @JsonSerializable() 7 | class Pagination { 8 | num? page; 9 | num? size; 10 | num? totalPage; 11 | num? total; 12 | bool? lastPage; 13 | 14 | Pagination(); 15 | 16 | factory Pagination.fromJson(Map json) => 17 | _$PaginationFromJson(json); 18 | } -------------------------------------------------------------------------------- /lib/ui/home/model/policyDescItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'policyDescItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PolicyDescItem { 7 | String? icon; 8 | String? schemeUrl; 9 | String? desc; 10 | 11 | PolicyDescItem(); 12 | 13 | factory PolicyDescItem.fromJson(Map json) => 14 | _$PolicyDescItemFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/home/model/noticeListModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'noticeListModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class NoticeListModel { 7 | num? type; 8 | String? content; 9 | String? targetUrl; 10 | 11 | NoticeListModel(); 12 | 13 | factory NoticeListModel.fromJson(Map json) => 14 | _$NoticeListModelFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = '../build' 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(':app') 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /ios/Runner/GlobleCookie/GloableCookie.h: -------------------------------------------------------------------------------- 1 | // 2 | // GloableCookie.h 3 | // Runner 4 | // 5 | // Created by dfg on 2020/12/2. 6 | // Copyright © 2020 The Chromium Authors. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface GloableCookie: NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/shoppingReward.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'shoppingReward.g.dart'; 5 | 6 | @JsonSerializable() 7 | class ShoppingReward { 8 | String? name; 9 | String? rewardDesc; 10 | String? rewardValue; 11 | 12 | ShoppingReward(); 13 | 14 | factory ShoppingReward.fromJson(Map json) => 15 | _$ShoppingRewardFromJson(json); 16 | } -------------------------------------------------------------------------------- /lib/ui/sort/model/categoryL1Item.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'categoryL1Item.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CategoryL1Item { 7 | num? id; 8 | num? superCategoryId; 9 | num? showIndex; 10 | String? name; 11 | 12 | CategoryL1Item(); 13 | 14 | factory CategoryL1Item.fromJson(Map json) => 15 | _$CategoryL1ItemFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/ui/topic/model/topNavData.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/topic/model/navItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'topNavData.g.dart'; 5 | 6 | @JsonSerializable() 7 | class TopData { 8 | bool? checkNavType; 9 | List? navList; 10 | 11 | TopData(); 12 | 13 | factory TopData.fromJson(Map json) => 14 | _$TopDataFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/skuSpecValue.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'skuSpecValue.g.dart'; 5 | 6 | 7 | @JsonSerializable() 8 | class SkuSpecValue { 9 | num? id; 10 | num? skuSpecId; 11 | String? picUrl; 12 | String? value; 13 | 14 | SkuSpecValue(); 15 | 16 | factory SkuSpecValue.fromJson(Map json) => 17 | _$SkuSpecValueFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /lib/ui/home/model/hotSaleListBottomInfo.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'hotSaleListBottomInfo.g.dart'; 4 | 5 | @JsonSerializable() 6 | class HotSaleListBottomInfo { 7 | String? iconUrl; 8 | String? content; 9 | 10 | HotSaleListBottomInfo(); 11 | 12 | factory HotSaleListBottomInfo.fromJson(Map json) => 13 | _$HotSaleListBottomInfoFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/itemPoolBarModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'itemPoolBarModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class ItemPoolBarModel { 7 | num? subtotalPrice; 8 | String? promTip; 9 | 10 | ItemPoolBarModel(this.subtotalPrice, this.promTip); 11 | 12 | factory ItemPoolBarModel.fromJson(Map json) => 13 | _$ItemPoolBarModelFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/utils/price_util.dart: -------------------------------------------------------------------------------- 1 | class PriceUtil { 2 | static priceToStr(String price) { 3 | var basicPrice = price; 4 | if (basicPrice.contains('.')) { 5 | var indexOf = basicPrice.indexOf('.'); 6 | var subInt = basicPrice.substring(0, indexOf); 7 | var subsDouble = basicPrice.substring(indexOf, basicPrice.length); 8 | return [subInt, '$subsDouble']; 9 | } 10 | return [basicPrice, '']; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/postageVO.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'postageVO.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PostageVO { 7 | bool? showTip; 8 | bool? postFree; 9 | num? priceRangeId; 10 | num? leftPostFreePrice; 11 | String? postageTip; 12 | 13 | PostageVO(); 14 | 15 | factory PostageVO.fromJson(Map json) => 16 | _$PostageVOFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/model/tabGroupModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/tabModel.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'tabGroupModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class TabGroupModel { 8 | List? categoryList; 9 | List? tabList; 10 | 11 | TabGroupModel(); 12 | 13 | factory TabGroupModel.fromJson(Map json) => 14 | _$TabGroupModelFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/pin/model/pinRecommonModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'pinRecommonModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PinRecommonModel { 7 | String? name; 8 | num? price; 9 | num? id; 10 | num? itemId; 11 | String? picUrl; 12 | 13 | PinRecommonModel(); 14 | 15 | factory PinRecommonModel.fromJson(Map json) => 16 | _$PinRecommonModelFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/mine/model/minePageItems.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'minePageItems.g.dart'; 4 | 5 | @JsonSerializable() 6 | class MinePageItems { 7 | num? fundType; 8 | String? fundValue; 9 | String? fundName; 10 | String? targetUrl; 11 | String? toast; 12 | 13 | MinePageItems(); 14 | 15 | factory MinePageItems.fromJson(Map json) => 16 | _$MinePageItemsFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/home/model/bigPromotionModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/floorItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'bigPromotionModule.g.dart'; 5 | 6 | @JsonSerializable() 7 | class BigPromotionModule { 8 | List? floorList; 9 | 10 | BigPromotionModule(); 11 | 12 | factory BigPromotionModule.fromJson(Map json) => 13 | _$BigPromotionModuleFromJson(json); 14 | } 15 | -------------------------------------------------------------------------------- /lib/utils/user_config.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/config/cookieConfig.dart'; 2 | 3 | const String user_icon_url = 4 | 'http://yanxuan.nosdn.127.net/8945ae63d940cc42406c3f67019c5cb6.png'; 5 | 6 | String get cookie { 7 | return CookieConfig.cookie; 8 | } 9 | 10 | String get csrf_token { 11 | return CookieConfig.token; 12 | } 13 | 14 | //yx_csrf;NTES_SESS 15 | //yx_csrf;NTES_YD_SESS;P_INFO 16 | //flutter build apk --target-platform android-arm 17 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/webview.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /lib/component/loading.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Loading extends StatelessWidget { 4 | @override 5 | Widget build(BuildContext context) { 6 | return Center( 7 | child: SizedBox( 8 | child: CircularProgressIndicator( 9 | strokeWidth: 2, 10 | valueColor: AlwaysStoppedAnimation(Colors.red), 11 | ), 12 | height: 22, 13 | width: 22, 14 | ), 15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/userInfo/model/qrCodeModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'qrCodeModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class QrCodeModel { 7 | num? userId; 8 | String? userName; 9 | String? avatarUrl; 10 | String? authIconUrl; 11 | num? memberLevel; 12 | String? qrCode; 13 | 14 | QrCodeModel(); 15 | 16 | factory QrCodeModel.fromJson(Map json) => 17 | _$QrCodeModelFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /lib/ui/home/model/focusItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'focusItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class FocusItem { 7 | String? picUrl; 8 | num? expireTime; 9 | String? name; 10 | num? onlineTime; 11 | num? id; 12 | String? originSchemeUrl; 13 | String? targetUrl; 14 | 15 | FocusItem(); 16 | 17 | factory FocusItem.fromJson(Map json) => 18 | _$FocusItemFromJson(json); 19 | } 20 | -------------------------------------------------------------------------------- /lib/ui/topic/model/buyNow.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'buyNow.g.dart'; 4 | 5 | @JsonSerializable() 6 | class BuyNow { 7 | num? itemId; 8 | num? purchaseAttribute; 9 | num? countPrice; 10 | num? retailPrice; 11 | num? primarySkuId; 12 | String? itemName; 13 | String? itemUrl; 14 | bool? valid; 15 | 16 | BuyNow(); 17 | 18 | factory BuyNow.fromJson(Map json) => _$BuyNowFromJson(json); 19 | } 20 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/interstItemModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'interstItemModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class InterstItemModel { 7 | num? categoryCode; 8 | String? categoryName; 9 | String? picUrl; 10 | num? rank; 11 | bool? selectFlag; 12 | 13 | InterstItemModel(); 14 | 15 | factory InterstItemModel.fromJson(Map json) => 16 | _$InterstItemModelFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/sort/model/categoryGroupItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'categoryGroupItem.g.dart'; 5 | 6 | @JsonSerializable() 7 | class CategoryGroupItem { 8 | num? id; 9 | String? name; 10 | List? categoryList; 11 | 12 | CategoryGroupItem(); 13 | 14 | factory CategoryGroupItem.fromJson(Map json) => 15 | _$CategoryGroupItemFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/ui/sort/model/hotListModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/sort/model/currentCategory.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'hotListModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class HotListModel { 8 | CurrentCategory? currentCategory; 9 | List? moreCategories; 10 | 11 | HotListModel(); 12 | 13 | factory HotListModel.fromJson(Map json) => 14 | _$HotListModelFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/topic/model/topicData.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/topic/model/navItem.dart'; 2 | import 'package:flutter_app/ui/topic/model/result.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'topicData.g.dart'; 6 | 7 | @JsonSerializable() 8 | class TopicData { 9 | bool? hasMore; 10 | List? result; 11 | 12 | TopicData(); 13 | 14 | factory TopicData.fromJson(Map json) => 15 | _$TopicDataFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/model/itemTagListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'itemTagListItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class ItemTagListItem { 7 | num? type; 8 | num? subType; 9 | num? tagId; 10 | num? itemId; 11 | String? name; 12 | bool? forbidJump; 13 | bool? freshmanExclusive; 14 | 15 | ItemTagListItem(); 16 | 17 | factory ItemTagListItem.fromJson(Map json) => 18 | _$ItemTagListItemFromJson(json); 19 | } 20 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/priceModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/finalPrice.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'priceModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class PriceModel { 8 | FinalPrice? finalPrice; 9 | String? counterPrice = ''; 10 | String? basicPrice = ''; 11 | 12 | PriceModel(); 13 | 14 | factory PriceModel.fromJson(Map json) => 15 | _$PriceModelFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/ui/home/model/flashSaleModuleItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'flashSaleModuleItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class FlashSaleModuleItem { 7 | num? itemId; 8 | num? originPrice; 9 | num? activityPrice; 10 | String? picUrl; 11 | String? showPicUrl; 12 | 13 | FlashSaleModuleItem(); 14 | 15 | factory FlashSaleModuleItem.fromJson(Map json) => 16 | _$FlashSaleModuleItemFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/bannerInfo.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'bannerInfo.g.dart'; 4 | 5 | @JsonSerializable() 6 | class BannerInfo { 7 | num? duration; 8 | bool? hasVideo; 9 | String? picUrl; 10 | String? videoUrl; 11 | num? size; 12 | num? width; 13 | bool? isVideo; 14 | num? height; 15 | 16 | BannerInfo(); 17 | 18 | factory BannerInfo.fromJson(Map json) => 19 | _$BannerInfoFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/brandIndexModel.dart: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 'package:flutter_app/model/itemListItem.dart'; 4 | import 'package:json_annotation/json_annotation.dart'; 5 | 6 | part 'brandIndexModel.g.dart'; 7 | 8 | @JsonSerializable() 9 | class BrandIndexModel{ 10 | String? extInfo; 11 | bool? hasMore; 12 | List? itemList; 13 | 14 | BrandIndexModel(); 15 | 16 | factory BrandIndexModel.fromJson(Map json) => 17 | _$BrandIndexModelFromJson(json); 18 | } -------------------------------------------------------------------------------- /lib/constant/statusbar_style.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/services.dart'; 3 | 4 | const SystemUiOverlayStyle statusBarLight = SystemUiOverlayStyle( 5 | statusBarColor: Colors.transparent, 6 | statusBarIconBrightness: Brightness.light); 7 | 8 | const SystemUiOverlayStyle statusBarDark = SystemUiOverlayStyle( 9 | systemNavigationBarColor: Colors.white, 10 | statusBarColor: Colors.transparent, 11 | statusBarIconBrightness: Brightness.dark); 12 | -------------------------------------------------------------------------------- /lib/ui/home/model/newItemTagModul.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'newItemTagModul.g.dart'; 4 | 5 | @JsonSerializable() 6 | class NewItemTagModel { 7 | num? itemId; 8 | num? tagId; 9 | bool? freshmanExclusive; 10 | bool? forbidJump; 11 | 12 | String? name; 13 | num? subType; 14 | num? type; 15 | 16 | NewItemTagModel(); 17 | 18 | factory NewItemTagModel.fromJson(Map json) => 19 | _$NewItemTagModelFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /lib/ui/home/model/tagItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'tagItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class TagItem { 7 | double? floorPrice; 8 | String? picUrl; 9 | bool? newOnShelf; 10 | String? webIndexVerticalPicUrl; 11 | String? simpleDesc; 12 | String? name; 13 | String? appListPicUrl; 14 | int? id; 15 | 16 | TagItem(); 17 | 18 | factory TagItem.fromJson(Map json) => 19 | _$TagItemFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/components/gd_button_style.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/colors.dart'; 3 | 4 | ///详情中使用 5 | ButtonStyle gdButtonStyle = ButtonStyle( 6 | shape: MaterialStateProperty.all( 7 | RoundedRectangleBorder(borderRadius: BorderRadius.circular(0))), 8 | backgroundColor: MaterialStateProperty.resolveWith((states) { 9 | return backWhite; 10 | }), 11 | padding: MaterialStateProperty.all(EdgeInsets.only(left: 10))); 12 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/wapitemDeliveryModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'wapitemDeliveryModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class WapitemDeliveryModel { 7 | num? status; 8 | num? addressId; 9 | String? addressName; 10 | String? deliveryTime; 11 | num? deliveryStatus; 12 | 13 | WapitemDeliveryModel(); 14 | 15 | factory WapitemDeliveryModel.fromJson(Map json) => 16 | _$WapitemDeliveryModelFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/mine/model/phoneStatusModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'phoneStatusModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class PhoneStatusModel { 7 | num? status; 8 | String? mobile; 9 | String? ucMobile; 10 | bool? degrade; 11 | bool? mobileBindFlowControl; 12 | bool? frequentlyAccount; 13 | 14 | PhoneStatusModel(); 15 | 16 | factory PhoneStatusModel.fromJson(Map json) => 17 | _$PhoneStatusModelFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /lib/ui/sort/model/subCateListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'subCateListItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class SubCateListItem { 7 | num? id; 8 | num? superCategoryId; 9 | num? showIndex; 10 | String? name; 11 | String? frontName; 12 | String? frontDesc; 13 | String? bannerUrl; 14 | 15 | SubCateListItem(); 16 | 17 | factory SubCateListItem.fromJson(Map json) => 18 | _$SubCateListItemFromJson(json); 19 | } 20 | -------------------------------------------------------------------------------- /lib/ui/topic/model/navItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'navItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class NavItem { 7 | num? id; 8 | String? picUrl; 9 | String? mainTitle; 10 | String? viceTitle; 11 | String? columnUrl; 12 | bool? onlineType; 13 | num? vaildStartTime; 14 | num? vaildEndTime; 15 | num? rank; 16 | 17 | NavItem(); 18 | 19 | factory NavItem.fromJson(Map json) => 20 | _$NavItemFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/mine/model/addressItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'addressItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class AddressItem { 7 | String? englishName; 8 | String? code; 9 | String? province; 10 | String? city; 11 | num? level; 12 | num? id; 13 | num? type; 14 | String? zonename; 15 | num? parentid; 16 | 17 | AddressItem(); 18 | 19 | factory AddressItem.fromJson(Map json) => 20 | _$AddressItemFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/home/model/styleItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'styleItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class StyleItem { 7 | String? targetUrl; 8 | String? title; 9 | String? picUrl; 10 | String? originSchemeUrl; 11 | String? descColor; 12 | String? titleColor; 13 | String? desc; 14 | List? picUrlList; 15 | 16 | StyleItem(); 17 | 18 | factory StyleItem.fromJson(Map json) => 19 | _$StyleItemFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /lib/ui/home/model/categoryHotSellModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'categoryHotSellModule.g.dart'; 5 | 6 | @JsonSerializable() 7 | class CategoryHotSellModule { 8 | String? titleTargetUrl; 9 | String? title; 10 | 11 | List? categoryList; 12 | 13 | CategoryHotSellModule(); 14 | 15 | factory CategoryHotSellModule.fromJson(Map json) => 16 | _$CategoryHotSellModuleFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/mine/model/layawayModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'layawayModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class LayawayModel { 7 | num? id; 8 | String? name; 9 | String? title; 10 | num? phaseNum; 11 | num? retailPrice; 12 | num? favorPrice; 13 | String? primaryPicUrl; 14 | String? listPicUrl; 15 | num? point; 16 | 17 | LayawayModel(); 18 | 19 | factory LayawayModel.fromJson(Map json) => 20 | _$LayawayModelFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/skuSpecListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/skuSpecValue.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'skuSpecListItem.g.dart'; 5 | 6 | @JsonSerializable() 7 | class SkuSpecListItem { 8 | num? id; 9 | String? name; 10 | num? type; 11 | 12 | List? skuSpecValueList; 13 | 14 | SkuSpecListItem(); 15 | 16 | factory SkuSpecListItem.fromJson(Map json) => 17 | _$SkuSpecListItemFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /lib/ui/home/model/newItemModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/newItemTagModul.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'newItemModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class NewItemModel { 8 | String? scenePicUrl; 9 | String? simpleDesc; 10 | num? retailPrice; 11 | List? itemTagList; 12 | int? id; 13 | 14 | NewItemModel(); 15 | 16 | factory NewItemModel.fromJson(Map json) => 17 | _$NewItemModelFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /lib/ui/home/model/homeRecommendList.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/itemListItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'homeRecommendList.g.dart'; 5 | 6 | @JsonSerializable() 7 | class HomeRecommendList { 8 | List? itemList = []; 9 | String rcmdVer = ""; 10 | String itemIdsStr = ""; 11 | var hasMore = false; 12 | 13 | HomeRecommendList(); 14 | 15 | factory HomeRecommendList.fromJson(Map json) => 16 | _$HomeRecommendListFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ui/home/model/categoryItemListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:flutter_app/model/itemListItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'categoryItemListItem.g.dart'; 6 | 7 | @JsonSerializable() 8 | class CategoryItemListItem { 9 | Category? category; 10 | List? itemList; 11 | 12 | CategoryItemListItem(); 13 | 14 | factory CategoryItemListItem.fromJson(Map json) => 15 | _$CategoryItemListItemFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /lib/ui/home/model/sceneLightShoppingGuideModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/styleItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'sceneLightShoppingGuideModule.g.dart'; 5 | 6 | @JsonSerializable() 7 | class SceneLightShoppingGuideModule { 8 | StyleItem? styleItem; 9 | StyleItem? styleBanner; 10 | 11 | SceneLightShoppingGuideModule(); 12 | 13 | factory SceneLightShoppingGuideModule.fromJson(Map json) => 14 | _$SceneLightShoppingGuideModuleFromJson(json); 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/sort/model/listPromBanner.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'listPromBanner.g.dart'; 4 | 5 | @JsonSerializable() 6 | class ListPromBanner { 7 | bool? valid; 8 | String? promoTitle; 9 | String? promoSubTitle; 10 | String? content; 11 | String? bannerTitleUrl; 12 | String? bannerContentUrl; 13 | num? styleType; 14 | num? timeType; 15 | 16 | ListPromBanner(); 17 | 18 | factory ListPromBanner.fromJson(Map json) => 19 | _$ListPromBannerFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortListData.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:flutter_app/ui/sort/model/sortlistCategoryItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'sortListData.g.dart'; 6 | 7 | /// 8 | @JsonSerializable() 9 | class SortListData { 10 | SortlistCategoryItem? categoryItems; 11 | List? categoryL2List; 12 | 13 | SortListData(); 14 | 15 | factory SortListData.fromJson(Map json) => 16 | _$SortListDataFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortlistCategoryItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:flutter_app/model/itemListItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'sortlistCategoryItem.g.dart'; 6 | 7 | @JsonSerializable() 8 | class SortlistCategoryItem { 9 | Category? category; 10 | List? itemList; 11 | 12 | SortlistCategoryItem(); 13 | 14 | factory SortlistCategoryItem.fromJson(Map json) => 15 | _$SortlistCategoryItemFromJson(json); 16 | } 17 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | import WebKit 4 | 5 | @UIApplicationMain 6 | @objc class AppDelegate: FlutterAppDelegate { 7 | override func application( 8 | _ application: UIApplication, 9 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 10 | ) -> Bool { 11 | GeneratedPluginRegistrant.register(with: self) 12 | CustomPluginRegistrant.register(with: self) 13 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/giftStepListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/shopping_cart/model/cartItemListItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'giftStepListItem.g.dart'; 5 | 6 | @JsonSerializable() 7 | class GiftStepListItem { 8 | num? stepNo; 9 | String? title; 10 | bool? isSatisfy; 11 | bool? ordered; 12 | List? giftItemList; 13 | 14 | GiftStepListItem(); 15 | 16 | factory GiftStepListItem.fromJson(Map json) => 17 | _$GiftStepListItemFromJson(json); 18 | } 19 | -------------------------------------------------------------------------------- /ios/Runner/CustomPluginRegistrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // CustomPluginRegistrant.h 3 | // Runner 4 | // 5 | // Created by dfg on 2020/12/2. 6 | // Copyright © 2020 The Chromium Authors. All rights reserved. 7 | // 8 | 9 | #ifndef CustomPluginRegistrant_h 10 | #define CustomPluginRegistrant_h 11 | 12 | #import 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @interface CustomPluginRegistrant : NSObject 17 | + (void)registerWithRegistry:(NSObject*)registry; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | #endif /* CustomPluginRegistrant_h */ 22 | -------------------------------------------------------------------------------- /lib/component/back_loading.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Loading extends StatelessWidget { 4 | @override 5 | Widget build(BuildContext context) { 6 | return Padding( 7 | padding: EdgeInsets.symmetric(vertical: 15), 8 | child: Center( 9 | child: SizedBox( 10 | child: CircularProgressIndicator( 11 | strokeWidth: 2, 12 | valueColor: AlwaysStoppedAnimation(Colors.red), 13 | ), 14 | height: 24, 15 | width: 24, 16 | ), 17 | ), 18 | ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/component/transport_loading.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Loading extends StatelessWidget { 4 | @override 5 | Widget build(BuildContext context) { 6 | return Padding( 7 | padding: EdgeInsets.symmetric(vertical: 15), 8 | child: Center( 9 | child: SizedBox( 10 | child: CircularProgressIndicator( 11 | strokeWidth: 2, 12 | valueColor: AlwaysStoppedAnimation(Colors.red), 13 | ), 14 | height: 24, 15 | width: 24, 16 | ), 17 | ), 18 | ); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/ui/error_page.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/tab_app_bar.dart'; 3 | 4 | class ErrorPage extends StatelessWidget { 5 | @override 6 | Widget build(BuildContext context) { 7 | return Scaffold( 8 | appBar: TabAppBar( 9 | title: '404', 10 | ).build(context), 11 | body: Material( 12 | child: Center( 13 | child: Text( 14 | 'error:404', 15 | style: TextStyle(fontSize: 25, color: Colors.red), 16 | ), 17 | ), 18 | ), 19 | ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/home/model/indexActivityModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'indexActivityModule.g.dart'; 4 | 5 | @JsonSerializable() 6 | class IndexActivityModule { 7 | String? backgroundUrl; 8 | String? picUrl; 9 | String? activityPrice; 10 | String? subTitle; 11 | String? originPrice; 12 | String? tag; 13 | String? title; 14 | String? targetUrl; 15 | String? showPicUrl; 16 | 17 | IndexActivityModule(); 18 | 19 | factory IndexActivityModule.fromJson(Map json) => 20 | _$IndexActivityModuleFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/hdrkDetailVOListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'hdrkDetailVOListItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class HdrkDetailVOListItem { 7 | num? id; 8 | String? name; 9 | String? promLimitDesc; 10 | String? activityType; 11 | String? huodongUrlWap; 12 | num? startTime; 13 | num? endTime; 14 | num? promotionType; 15 | bool? canUseCoupon; 16 | 17 | HdrkDetailVOListItem(); 18 | 19 | factory HdrkDetailVOListItem.fromJson(Map json) => 20 | _$HdrkDetailVOListItemFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/mine/model/pointEcmdModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'pointEcmdModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PointEcmdModel _$PointEcmdModelFromJson(Map json) => 10 | PointEcmdModel()..id = json['id'] as num?; 11 | 12 | Map _$PointEcmdModelToJson(PointEcmdModel instance) => 13 | { 14 | 'id': instance.id, 15 | }; 16 | -------------------------------------------------------------------------------- /lib/ui/home/model/kingkongModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/category.dart'; 2 | import 'package:flutter_app/ui/home/model/categoryItemListItem.dart'; 3 | import 'package:flutter_app/ui/sort/model/currentCategory.dart'; 4 | import 'package:json_annotation/json_annotation.dart'; 5 | 6 | part 'kingkongModel.g.dart'; 7 | 8 | @JsonSerializable() 9 | class KingkongModel { 10 | Category? currentCategory; 11 | List? categoryItemList; 12 | 13 | KingkongModel(); 14 | 15 | factory KingkongModel.fromJson(Map json) => 16 | _$KingkongModelFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /lib/ui/home/model/floorItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/cells.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'floorItem.g.dart'; 5 | 6 | @JsonSerializable() 7 | class FloorItem { 8 | int? layout; 9 | int? columnNum; 10 | int? floorType; 11 | List? cells; 12 | int? style; 13 | int? taskId; 14 | num? height; 15 | 16 | FloorItem(this.layout, this.columnNum, this.floorType, this.cells, this.style, 17 | this.taskId, this.height); 18 | 19 | factory FloorItem.fromJson(Map json) => 20 | _$FloorItemFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/home/model/flashSaleModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/flashSaleModuleItem.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'flashSaleModule.g.dart'; 5 | 6 | @JsonSerializable() 7 | class FlashSaleModule { 8 | num? activityPrice; 9 | 10 | String? primaryPicUrl; 11 | num? nextStartTime; 12 | num? remainTime; 13 | num? flashSaleScreenId; 14 | bool? showFlash; 15 | List? itemList; 16 | 17 | FlashSaleModule(); 18 | 19 | factory FlashSaleModule.fromJson(Map json) => 20 | _$FlashSaleModuleFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/component/page_loading.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/app_bar.dart'; 3 | 4 | class PageLoading extends StatelessWidget { 5 | @override 6 | Widget build(BuildContext context) { 7 | return Scaffold( 8 | appBar: TopAppBar().build(context), 9 | body: Center( 10 | child: SizedBox( 11 | child: CircularProgressIndicator( 12 | strokeWidth: 2, 13 | valueColor: AlwaysStoppedAnimation(Colors.red), 14 | ), 15 | height: 22, 16 | width: 22, 17 | ), 18 | ), 19 | ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/goodDetailPre.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/goodDetail.dart'; 2 | import 'package:flutter_app/ui/goods_detail/model/skuMapValue.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'goodDetailPre.g.dart'; 6 | 7 | @JsonSerializable() 8 | class GoodDetailPre { 9 | GoodDetail? item; 10 | 11 | List? policyList; 12 | num? commentCount; 13 | num? commentWithPicCount; 14 | num? source; 15 | 16 | GoodDetailPre(); 17 | 18 | factory GoodDetailPre.fromJson(Map json) => 19 | _$GoodDetailPreFromJson(json); 20 | } 21 | -------------------------------------------------------------------------------- /ios/Runner/CustomPluginRegistrant.m: -------------------------------------------------------------------------------- 1 | // 2 | // CustomPluginRegistrant.m 3 | // Runner 4 | // 5 | // Created by dfg on 2020/12/2. 6 | // Copyright © 2020 The Chromium Authors. All rights reserved. 7 | // 8 | 9 | #import "CustomPluginRegistrant.h" 10 | #import "GloableCookie.h" 11 | #import "InstallPlugin.h" 12 | 13 | @implementation CustomPluginRegistrant 14 | + (void)registerWithRegistry:(NSObject*)registry { 15 | [GloableCookie registerWithRegistrar:[registry registrarForPlugin:@"GloableCookie"]]; 16 | [InstallPlugin registerWithRegistrar:[registry registrarForPlugin:@"InstallPlugin"]]; 17 | } 18 | @end 19 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortData.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/sort/model/categoryGroupItem.dart'; 2 | import 'package:flutter_app/ui/sort/model/categoryL1Item.dart'; 3 | import 'package:flutter_app/ui/sort/model/currentCategory.dart'; 4 | import 'package:json_annotation/json_annotation.dart'; 5 | 6 | part 'sortData.g.dart'; 7 | 8 | @JsonSerializable() 9 | class SortData { 10 | List? categoryL1List; 11 | CurrentCategory? currentCategory; 12 | List? categoryGroupList; 13 | SortData(); 14 | 15 | factory SortData.fromJson(Map json) => 16 | _$SortDataFromJson(json); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ui/userInfo/model/sizeItemModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'sizeItemModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class SizeItemModel { 7 | num? hipCircumference; 8 | num? footLength; 9 | num? gender; 10 | num? footCircumference; 11 | num? waistCircumference; 12 | num? shoulderBreadth; 13 | bool? dft; 14 | String? roleName; 15 | num? bust; 16 | num? underBust; 17 | num? id; 18 | num? bodyWeight; 19 | num? height; 20 | 21 | SizeItemModel(); 22 | 23 | factory SizeItemModel.fromJson(Map json) => 24 | _$SizeItemModelFromJson(json); 25 | } 26 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/want/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.want 2 | 3 | import androidx.annotation.NonNull 4 | import io.flutter.embedding.android.FlutterActivity 5 | import io.flutter.embedding.engine.FlutterEngine 6 | import io.flutter.plugins.GeneratedPluginRegistrant 7 | 8 | 9 | class MainActivity: FlutterActivity() { 10 | override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { 11 | GeneratedPluginRegistrant.registerWith(flutterEngine) 12 | ConnectPlugins.initConnectPlugins(flutterEngine,this) 13 | InstallPlugin.initInstallPlugin(flutterEngine,this) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/component/slivers.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | SliverToBoxAdapter singleSliverWidget(Widget widget) { 4 | return SliverToBoxAdapter( 5 | child: widget, 6 | ); 7 | } 8 | 9 | SliverGrid buildASingleSliverGrid(Widget widget, int rowCount) { 10 | return SliverGrid( 11 | delegate: SliverChildBuilderDelegate((BuildContext context, int index) { 12 | return widget; 13 | }), 14 | gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( 15 | crossAxisCount: rowCount, 16 | childAspectRatio: 0.65, 17 | mainAxisSpacing: 3, 18 | crossAxisSpacing: 3), 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /lib/model/categoryL1ListItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'categoryL1ListItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CategoryL1ListItem { 7 | num? id; 8 | num? superCategoryId; 9 | num? showIndex; 10 | String? name; 11 | String? frontName; 12 | String? frontDesc; 13 | String? bannerUrl; 14 | String? wapBannerUrl; 15 | String? iconUrl; 16 | String? imgUrl; 17 | String? level; 18 | num? type; 19 | num? categoryType; 20 | 21 | 22 | CategoryL1ListItem(); 23 | 24 | factory CategoryL1ListItem.fromJson(Map json) => 25 | _$CategoryL1ListItemFromJson(json); 26 | } 27 | -------------------------------------------------------------------------------- /lib/ui/mine/components/head_portrait.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter_app/component/round_net_image.dart'; 4 | 5 | class HeadPortrait extends StatelessWidget { 6 | final String? url; 7 | 8 | const HeadPortrait({Key? key, this.url}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return Container( 13 | alignment: Alignment.centerLeft, 14 | child: RoundNetImage( 15 | url: url, 16 | height: 50, 17 | width: 50, 18 | corner: 25, 19 | fontSize: 10, 20 | ), 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/model/tabModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'tabModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TabModel _$TabModelFromJson(Map json) => TabModel() 10 | ..id = json['id'] as num? 11 | ..name = json['name'] as String? 12 | ..type = json['type'] as String?; 13 | 14 | Map _$TabModelToJson(TabModel instance) => { 15 | 'id': instance.id, 16 | 'name': instance.name, 17 | 'type': instance.type, 18 | }; 19 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/skuSpec.dart: -------------------------------------------------------------------------------- 1 | 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'skuSpec.g.dart'; 5 | 6 | @JsonSerializable() 7 | class SkuSpec { 8 | num? id; 9 | String? name; 10 | num? type; 11 | List? skuSpecValueList; 12 | 13 | SkuSpec(); 14 | 15 | factory SkuSpec.fromJson(Map json) => 16 | _$SkuSpecFromJson(json); 17 | } 18 | 19 | 20 | @JsonSerializable() 21 | class SkuSpecValueListItem { 22 | num? id; 23 | String? value; 24 | 25 | SkuSpecValueListItem(); 26 | 27 | factory SkuSpecValueListItem.fromJson(Map json) => 28 | _$SkuSpecValueListItemFromJson(json); 29 | } 30 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/itemSizeDetailModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/userInfo/model/sizeItemModel.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'itemSizeDetailModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class ItemSizeDetailModel { 8 | String? name; 9 | String? remarks; 10 | String? roleName; 11 | List>? itemSizeValueList; 12 | List>? roleSizeValueList; 13 | List? roleList; 14 | bool? roleSizeComplete; 15 | num? recommendIndex; 16 | 17 | ItemSizeDetailModel(); 18 | 19 | factory ItemSizeDetailModel.fromJson(Map json) => 20 | _$ItemSizeDetailModelFromJson(json); 21 | } 22 | -------------------------------------------------------------------------------- /lib/ui/userInfo/model/accountMGModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'accountMGModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class AccountMGModel { 7 | List? aliasEnableOps = []; 8 | List? alias = []; 9 | 10 | AccountMGModel(); 11 | 12 | factory AccountMGModel.fromJson(Map json) => 13 | _$AccountMGModelFromJson(json); 14 | } 15 | 16 | @JsonSerializable() 17 | class AliasItem { 18 | num? aliasType; 19 | num? frontGroupType; 20 | String? mobile; 21 | String? alias; 22 | 23 | AliasItem(); 24 | 25 | factory AliasItem.fromJson(Map json) => 26 | _$AliasItemFromJson(json); 27 | } 28 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/issueListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'issueListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | IssueListItem _$IssueListItemFromJson(Map json) => 10 | IssueListItem() 11 | ..question = json['question'] as String? 12 | ..answer = json['answer'] as String?; 13 | 14 | Map _$IssueListItemToJson(IssueListItem instance) => 15 | { 16 | 'question': instance.question, 17 | 'answer': instance.answer, 18 | }; 19 | -------------------------------------------------------------------------------- /lib/component/global.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/colors.dart'; 3 | 4 | ///底部边框 5 | BoxDecoration bottomBorder = BoxDecoration( 6 | border: Border(bottom: BorderSide(color: lineColor, width: 0.5))); 7 | 8 | BoxDecoration topBorder = BoxDecoration( 9 | border: Border(top: BorderSide(color: backGrey, width: 0.5)), 10 | color: Colors.white, 11 | ); 12 | 13 | ///右指向箭头 14 | Widget arrowRightIcon = Image.asset( 15 | 'assets/images/arrow_right.png', 16 | width: 12, 17 | height: 12, 18 | ); 19 | 20 | ///右指向箭头 21 | Widget arrowRightRed10Icon = Image.asset( 22 | 'assets/images/arrow_right.png', 23 | width: 12, 24 | height: 12, 25 | color: textRed, 26 | ); 27 | -------------------------------------------------------------------------------- /lib/ui/home/model/itemPicBeanList.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'itemPicBeanList.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ItemPicBeanList _$ItemPicBeanListFromJson(Map json) => 10 | ItemPicBeanList() 11 | ..itemId = (json['itemId'] as num?)?.toInt() 12 | ..picUrl = json['picUrl'] as String?; 13 | 14 | Map _$ItemPicBeanListToJson(ItemPicBeanList instance) => 15 | { 16 | 'itemId': instance.itemId, 17 | 'picUrl': instance.picUrl, 18 | }; 19 | -------------------------------------------------------------------------------- /lib/model/couponItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'couponItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CouponItem { 7 | num? id; 8 | String? name; 9 | String? code; 10 | String? useCondition; 11 | num? validStartTime; 12 | num? validEndTime; 13 | num? cash; 14 | num? type; 15 | bool? usable; 16 | bool? appOnly; 17 | bool? newUserOnly; 18 | String? path; 19 | num? useTime; 20 | String? briefDesc; 21 | String? unit; 22 | bool? buttonFlag; 23 | bool? hasCoupon; 24 | bool? albeToActivated; 25 | String? timeDesc; 26 | 27 | CouponItem(); 28 | 29 | factory CouponItem.fromJson(Map json) => 30 | _$CouponItemFromJson(json); 31 | } 32 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/shoppingCartModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/shopping_cart/model/carItem.dart'; 2 | import 'package:flutter_app/ui/shopping_cart/model/postageVO.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'shoppingCartModel.g.dart'; 6 | 7 | @JsonSerializable() 8 | class ShoppingCartModel { 9 | num? totalPrice; 10 | num? promotionPrice; 11 | num? actualPrice; 12 | num? totalPoint; 13 | num? actualPoint; 14 | PostageVO? postageVO; 15 | 16 | List? cartGroupList; 17 | List? invalidCartGroupList; 18 | 19 | ShoppingCartModel(); 20 | 21 | factory ShoppingCartModel.fromJson(Map json) => 22 | _$ShoppingCartModelFromJson(json); 23 | } 24 | -------------------------------------------------------------------------------- /lib/ui/sort/model/bannerItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'bannerItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | BannerItem _$BannerItemFromJson(Map json) => BannerItem() 10 | ..id = json['id'] as num? 11 | ..picUrl = json['picUrl'] as String? 12 | ..targetUrl = json['targetUrl'] as String?; 13 | 14 | Map _$BannerItemToJson(BannerItem instance) => 15 | { 16 | 'id': instance.id, 17 | 'picUrl': instance.picUrl, 18 | 'targetUrl': instance.targetUrl, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/itemPoolBarModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'itemPoolBarModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ItemPoolBarModel _$ItemPoolBarModelFromJson(Map json) => 10 | ItemPoolBarModel( 11 | json['subtotalPrice'] as num?, 12 | json['promTip'] as String?, 13 | ); 14 | 15 | Map _$ItemPoolBarModelToJson(ItemPoolBarModel instance) => 16 | { 17 | 'subtotalPrice': instance.subtotalPrice, 18 | 'promTip': instance.promTip, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/shoppingRewardRule.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/skuMapValue.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'shoppingRewardRule.g.dart'; 5 | 6 | @JsonSerializable() 7 | class ShoppingRewardRule { 8 | String? title; 9 | List? ruleList; 10 | 11 | ShoppingRewardRule(); 12 | 13 | factory ShoppingRewardRule.fromJson(Map json) => 14 | _$ShoppingRewardRuleFromJson(json); 15 | } 16 | 17 | @JsonSerializable() 18 | class RuleListItem { 19 | String? title; 20 | String? content; 21 | 22 | RuleListItem(); 23 | 24 | factory RuleListItem.fromJson(Map json) => 25 | _$RuleListItemFromJson(json); 26 | } 27 | -------------------------------------------------------------------------------- /lib/ui/topic/model/topicData.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'topicData.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TopicData _$TopicDataFromJson(Map json) => TopicData() 10 | ..hasMore = json['hasMore'] as bool? 11 | ..result = (json['result'] as List?) 12 | ?.map((e) => Result.fromJson(e as Map)) 13 | .toList(); 14 | 15 | Map _$TopicDataToJson(TopicData instance) => { 16 | 'hasMore': instance.hasMore, 17 | 'result': instance.result, 18 | }; 19 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/commentItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'commentItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CommentItem _$CommentItemFromJson(Map json) => CommentItem() 10 | ..name = json['name'] as String? 11 | ..strCount = json['strCount'] as String? 12 | ..type = json['type'] as String?; 13 | 14 | Map _$CommentItemToJson(CommentItem instance) => 15 | { 16 | 'name': instance.name, 17 | 'strCount': instance.strCount, 18 | 'type': instance.type, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/finalPrice.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'finalPrice.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | FinalPrice _$FinalPriceFromJson(Map json) => FinalPrice() 10 | ..prefix = json['prefix'] as String? 11 | ..price = json['price'] as String? 12 | ..suffix = json['suffix'] as String?; 13 | 14 | Map _$FinalPriceToJson(FinalPrice instance) => 15 | { 16 | 'prefix': instance.prefix, 17 | 'price': instance.price, 18 | 'suffix': instance.suffix, 19 | }; 20 | -------------------------------------------------------------------------------- /lib/ui/home/model/kingKongModule.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'kingKongModule.g.dart'; 4 | 5 | @JsonSerializable() 6 | class KingKongModule { 7 | String? norColor; 8 | String? background; 9 | String? selectedColor; 10 | List? kingKongList; 11 | 12 | KingKongModule(); 13 | 14 | factory KingKongModule.fromJson(Map json) => 15 | _$KingKongModuleFromJson(json); 16 | } 17 | 18 | @JsonSerializable() 19 | class KingKongItem { 20 | String? picUrl; 21 | String? schemeUrl; 22 | String? text; 23 | String? textColor; 24 | 25 | KingKongItem(); 26 | 27 | factory KingKongItem.fromJson(Map json) => 28 | _$KingKongItemFromJson(json); 29 | } 30 | -------------------------------------------------------------------------------- /lib/ui/home/model/versionModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'versionModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class VersionModel { 7 | String? buildBuildVersion; 8 | String? forceUpdateVersion; 9 | String? forceUpdateVersionNo; 10 | bool? needForceUpdate; 11 | String? downloadURL; 12 | bool? buildHaveNewVersion; 13 | String? buildVersionNo; 14 | String? buildVersion; 15 | String? buildUpdateDescription; 16 | String? appKey; 17 | String? buildKey; 18 | String? buildName; 19 | String? buildIcon; 20 | String? buildFileKey; 21 | String? buildFileSize; 22 | 23 | VersionModel(); 24 | 25 | factory VersionModel.fromJson(Map json) => 26 | _$VersionModelFromJson(json); 27 | } 28 | -------------------------------------------------------------------------------- /lib/ui/topic/model/topNavData.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'topNavData.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TopData _$TopDataFromJson(Map json) => TopData() 10 | ..checkNavType = json['checkNavType'] as bool? 11 | ..navList = (json['navList'] as List?) 12 | ?.map((e) => NavItem.fromJson(e as Map)) 13 | .toList(); 14 | 15 | Map _$TopDataToJson(TopData instance) => { 16 | 'checkNavType': instance.checkNavType, 17 | 'navList': instance.navList, 18 | }; 19 | -------------------------------------------------------------------------------- /lib/model/topLogo.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'topLogo.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TopLogo _$TopLogoFromJson(Map json) => TopLogo() 10 | ..logoUrl = json['logoUrl'] as String? 11 | ..width = json['width'] as num? 12 | ..height = json['height'] as num? 13 | ..type = json['type'] as num?; 14 | 15 | Map _$TopLogoToJson(TopLogo instance) => { 16 | 'logoUrl': instance.logoUrl, 17 | 'width': instance.width, 18 | 'height': instance.height, 19 | 'type': instance.type, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ui/home/model/bigPromotionModule.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'bigPromotionModule.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | BigPromotionModule _$BigPromotionModuleFromJson(Map json) => 10 | BigPromotionModule() 11 | ..floorList = (json['floorList'] as List?) 12 | ?.map((e) => FloorItem.fromJson(e as Map)) 13 | .toList(); 14 | 15 | Map _$BigPromotionModuleToJson(BigPromotionModule instance) => 16 | { 17 | 'floorList': instance.floorList, 18 | }; 19 | -------------------------------------------------------------------------------- /lib/ui/home/model/hotSaleListBottomInfo.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'hotSaleListBottomInfo.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | HotSaleListBottomInfo _$HotSaleListBottomInfoFromJson( 10 | Map json) => 11 | HotSaleListBottomInfo() 12 | ..iconUrl = json['iconUrl'] as String? 13 | ..content = json['content'] as String?; 14 | 15 | Map _$HotSaleListBottomInfoToJson( 16 | HotSaleListBottomInfo instance) => 17 | { 18 | 'iconUrl': instance.iconUrl, 19 | 'content': instance.content, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ui/home/model/policyDescItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'policyDescItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PolicyDescItem _$PolicyDescItemFromJson(Map json) => 10 | PolicyDescItem() 11 | ..icon = json['icon'] as String? 12 | ..schemeUrl = json['schemeUrl'] as String? 13 | ..desc = json['desc'] as String?; 14 | 15 | Map _$PolicyDescItemToJson(PolicyDescItem instance) => 16 | { 17 | 'icon': instance.icon, 18 | 'schemeUrl': instance.schemeUrl, 19 | 'desc': instance.desc, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ui/home/model/globalModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'globalModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class GlobalModel { 7 | String? environment; 8 | String? nickname; 9 | String? username; 10 | String? userid; 11 | List? cateList; 12 | 13 | GlobalModel(); 14 | factory GlobalModel.fromJson(Map json) => 15 | _$GlobalModelFromJson(json); 16 | } 17 | 18 | @JsonSerializable() 19 | class CateListItem { 20 | num? id; 21 | num? superCategoryId; 22 | num? showIndex; 23 | String? name; 24 | String? imgUrl; 25 | num? type; 26 | num? categoryType; 27 | 28 | CateListItem(); 29 | 30 | factory CateListItem.fromJson(Map json) => 31 | _$CateListItemFromJson(json); 32 | } 33 | -------------------------------------------------------------------------------- /lib/ui/home/model/noticeListModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'noticeListModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NoticeListModel _$NoticeListModelFromJson(Map json) => 10 | NoticeListModel() 11 | ..type = json['type'] as num? 12 | ..content = json['content'] as String? 13 | ..targetUrl = json['targetUrl'] as String?; 14 | 15 | Map _$NoticeListModelToJson(NoticeListModel instance) => 16 | { 17 | 'type': instance.type, 18 | 'content': instance.content, 19 | 'targetUrl': instance.targetUrl, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ui/topic/model/result.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'result.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Result _$ResultFromJson(Map json) => Result() 10 | ..topics = (json['topics'] as List?) 11 | ?.map((e) => TopicItem.fromJson(e as Map)) 12 | .toList() 13 | ..look = json['look'] == null 14 | ? null 15 | : TopicItem.fromJson(json['look'] as Map); 16 | 17 | Map _$ResultToJson(Result instance) => { 18 | 'topics': instance.topics, 19 | 'look': instance.look, 20 | }; 21 | -------------------------------------------------------------------------------- /.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 | .dart_tool/ 26 | .flutter-plugins 27 | .flutter-plugins-dependencies 28 | .packages 29 | .pub-cache/ 30 | .pub/ 31 | /build/ 32 | build 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Exceptions to above rules. 38 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 39 | /pubspec.lock 40 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/goodDetailDownData.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/goodDetail.dart'; 2 | import 'package:flutter_app/ui/goods_detail/model/issueListItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'goodDetailDownData.g.dart'; 6 | 7 | @JsonSerializable() 8 | class GoodDetailDownData { 9 | num? id; 10 | String? html; 11 | 12 | List? attrList; 13 | List? reportPicList; 14 | List? issueList; 15 | String? name; 16 | String? desc; 17 | String? pic; 18 | bool? itemSizeTableFlag; 19 | bool? itemSizeTableDetailFlag; 20 | num? updateTime; 21 | 22 | GoodDetailDownData(); 23 | 24 | factory GoodDetailDownData.fromJson(Map json) => 25 | _$GoodDetailDownDataFromJson(json); 26 | } 27 | -------------------------------------------------------------------------------- /lib/ui/mine/model/locationItemModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'locationItemModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class LocationItemModel { 7 | String? zipCode; 8 | String? townName; 9 | String? address; 10 | String? incompleteDesc; 11 | String? districtName; 12 | String? mobile; 13 | num? cityId; 14 | bool? completed; 15 | num? townId; 16 | num? provinceId; 17 | bool? dft; 18 | num? districtId; 19 | String? cityName; 20 | String? fullAddress; 21 | String? name; 22 | num? id; 23 | String? provinceName; 24 | 25 | LocationItemModel(); 26 | 27 | factory LocationItemModel.fromJson(Map json) => 28 | _$LocationItemModelFromJson(json); 29 | 30 | Map toJson() => _$LocationItemModelToJson(this); 31 | } 32 | -------------------------------------------------------------------------------- /lib/model/category.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/home/model/itemPicBeanList.dart'; 2 | import 'package:flutter_app/ui/sort/model/bannerItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'category.g.dart'; 6 | 7 | @JsonSerializable() 8 | class Category { 9 | num? id; 10 | num? superCategoryId; 11 | num? showIndex; 12 | String? picUrl; 13 | String? categoryName; 14 | String? targetUrl; 15 | String? showPicUrl; 16 | String? wapBannerUrl; 17 | String? name; 18 | String? frontName; 19 | List? itemPicBeanList; 20 | List? bannerList; 21 | String? test; 22 | Category(); 23 | 24 | factory Category.fromJson(Map json) => 25 | _$CategoryFromJson(json); 26 | 27 | Map toJson() => _$CategoryToJson(this); 28 | } 29 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/shoppingReward.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'shoppingReward.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ShoppingReward _$ShoppingRewardFromJson(Map json) => 10 | ShoppingReward() 11 | ..name = json['name'] as String? 12 | ..rewardDesc = json['rewardDesc'] as String? 13 | ..rewardValue = json['rewardValue'] as String?; 14 | 15 | Map _$ShoppingRewardToJson(ShoppingReward instance) => 16 | { 17 | 'name': instance.name, 18 | 'rewardDesc': instance.rewardDesc, 19 | 'rewardValue': instance.rewardValue, 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ui/home/model/preNewItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'preNewItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PreNewItem _$PreNewItemFromJson(Map json) => PreNewItem() 10 | ..listPicUrl = json['listPicUrl'] as String? 11 | ..retailPrice = json['retailPrice'] as num? 12 | ..name = json['name'] as String? 13 | ..id = json['id'] as num?; 14 | 15 | Map _$PreNewItemToJson(PreNewItem instance) => 16 | { 17 | 'listPicUrl': instance.listPicUrl, 18 | 'retailPrice': instance.retailPrice, 19 | 'name': instance.name, 20 | 'id': instance.id, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/skuSpecValue.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'skuSpecValue.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SkuSpecValue _$SkuSpecValueFromJson(Map json) => SkuSpecValue() 10 | ..id = json['id'] as num? 11 | ..skuSpecId = json['skuSpecId'] as num? 12 | ..picUrl = json['picUrl'] as String? 13 | ..value = json['value'] as String?; 14 | 15 | Map _$SkuSpecValueToJson(SkuSpecValue instance) => 16 | { 17 | 'id': instance.id, 18 | 'skuSpecId': instance.skuSpecId, 19 | 'picUrl': instance.picUrl, 20 | 'value': instance.value, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/ui/home/model/newUserGiftModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'newUserGiftModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class NewUserGift { 7 | bool? showEntrance; 8 | bool? showGiftWin; 9 | bool? showItemDetailGiftWin; 10 | num? winType; 11 | bool? newUser; 12 | NewUserGiftData? newUserGift; 13 | 14 | NewUserGift(); 15 | 16 | factory NewUserGift.fromJson(Map json) => 17 | _$NewUserGiftFromJson(json); 18 | } 19 | 20 | @JsonSerializable() 21 | class NewUserGiftData { 22 | String? showPic; 23 | num? price; 24 | num? expireTime; 25 | num? useExpireTime; 26 | num? status; 27 | num? currentTime; 28 | 29 | NewUserGiftData(); 30 | 31 | factory NewUserGiftData.fromJson(Map json) => 32 | _$NewUserGiftDataFromJson(json); 33 | } 34 | -------------------------------------------------------------------------------- /lib/ui/mine/model/couponItemModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'couponItemModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CouponItemModel { 7 | String? title; 8 | String? code; 9 | num? validStartTime; 10 | bool? appOnly; 11 | bool? buttonFlag; 12 | int? type; 13 | String? path; 14 | bool? usable; 15 | String? unit; 16 | bool? hasCoupon; 17 | int? newUserOnly; 18 | num? validEndTime; 19 | String? briefDesc; 20 | String? useCondition; 21 | String? name; 22 | String? timeDesc; 23 | int? useTime; 24 | num? id; 25 | double? cash; 26 | bool? albeToActivated; 27 | bool? isSelected; 28 | 29 | CouponItemModel({this.isSelected = false}); 30 | 31 | factory CouponItemModel.fromJson(Map json) => 32 | _$CouponItemModelFromJson(json); 33 | } 34 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | }() 9 | 10 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") 11 | 12 | repositories { 13 | google() 14 | mavenCentral() 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 21 | id "com.android.application" version '8.7.3' apply false 22 | id "org.jetbrains.kotlin.android" version "2.0.0" apply false 23 | } 24 | 25 | include ":app" 26 | -------------------------------------------------------------------------------- /lib/ui/sort/model/searchResultModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/itemListItem.dart'; 2 | import 'package:flutter_app/ui/sort/model/categoryL1Item.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'searchResultModel.g.dart'; 6 | 7 | @JsonSerializable() 8 | class SearchResultModel { 9 | bool? hasMore; 10 | List? directlyList; 11 | List? categoryL1List; 12 | 13 | SearchResultModel(); 14 | 15 | factory SearchResultModel.fromJson(Map json) => 16 | _$SearchResultModelFromJson(json); 17 | } 18 | 19 | @JsonSerializable() 20 | class CategoryL1ListItem { 21 | num? id; 22 | String? name; 23 | 24 | CategoryL1ListItem(); 25 | 26 | factory CategoryL1ListItem.fromJson(Map json) => 27 | _$CategoryL1ListItemFromJson(json); 28 | } 29 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/couponModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'couponModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CouponModel { 7 | String? code; 8 | num? validStartTime; 9 | String? couponItemPath; 10 | bool? appOnly; 11 | bool? buttonFlag; 12 | num? type; 13 | num? baseActiveNewUserOnly; 14 | String? path; 15 | bool? usable; 16 | String? unit; 17 | bool? hasCoupon; 18 | num? newUserOnly; 19 | num? validEndTime; 20 | String? briefDesc; 21 | String? useCondition; 22 | String? name; 23 | String? timeDesc; 24 | num? useTime; 25 | String? activationCode; 26 | num? id; 27 | bool? albeToActivated; 28 | bool? isSelected; 29 | 30 | CouponModel(); 31 | 32 | factory CouponModel.fromJson(Map json) => 33 | _$CouponModelFromJson(json); 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/bannerModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/priceModel.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'bannerModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class BannerModel { 8 | num? status; 9 | ProcessBanner? processBanner; 10 | num? type; 11 | 12 | BannerModel(); 13 | factory BannerModel.fromJson(Map json) => 14 | _$BannerModelFromJson(json); 15 | } 16 | 17 | @JsonSerializable() 18 | class ProcessBanner { 19 | String? title; 20 | String? supplementText; 21 | PriceModel? priceInfo; 22 | String? logoUrl; 23 | String? timePrefix; 24 | num? endTimeGap; 25 | String? bgColor; 26 | String? priceBgColor; 27 | 28 | ProcessBanner(); 29 | factory ProcessBanner.fromJson(Map json) => 30 | _$ProcessBannerFromJson(json); 31 | } 32 | -------------------------------------------------------------------------------- /lib/ui/login/index.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/app_bar.dart'; 3 | import 'package:flutter_app/ui/component/webview_login_page.dart'; 4 | 5 | class LoginPage extends StatefulWidget { 6 | const LoginPage({Key? key}) : super(key: key); 7 | 8 | @override 9 | _LoginPageState createState() => _LoginPageState(); 10 | } 11 | 12 | class _LoginPageState extends State { 13 | @override 14 | Widget build(BuildContext context) { 15 | return Scaffold( 16 | appBar: TopAppBar( 17 | title: '登录', 18 | ).build(context), 19 | body: WebLoginWidget( 20 | onValueChanged: (value) { 21 | if (value) { 22 | setState(() { 23 | Navigator.pop(context, 'success'); 24 | }); 25 | } 26 | }, 27 | ), 28 | ); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /lib/channel/installPlugin.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter_app/channel/index.dart'; 4 | 5 | class InstallPlugin { 6 | /// for Android : install apk by its file absolute path; 7 | /// if the target platform is higher than android 24: 8 | /// a [appId] is required 9 | /// (the caller's applicationId which is defined in build.gradle) 10 | static Future installApk(String filePath, String appId) async { 11 | Map params = {'filePath': filePath, 'appId': appId}; 12 | return await installPluginChannel.invokeMethod('installApk', params); 13 | } 14 | 15 | /// for iOS: go to app store by the url 16 | static Future gotoAppStore(String urlString) async { 17 | Map params = {'urlString': urlString}; 18 | return await installPluginChannel.invokeMethod('gotoAppStore', params); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/utils/color_util.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | extension HexColor on Color { 4 | /// String is in the format "aabbcc" or "ffaabbcc" with an optional leading "#". 5 | static Color fromHex(String hexString) { 6 | final buffer = StringBuffer(); 7 | if (hexString.length == 6 || hexString.length == 7) buffer.write('ff'); 8 | buffer.write(hexString.replaceFirst('#', '')); 9 | return Color(int.parse(buffer.toString(), radix: 16)); 10 | } 11 | 12 | /// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`). 13 | String toHex({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}' 14 | '${alpha.toRadixString(16).padLeft(2, '0')}' 15 | '${red.toRadixString(16).padLeft(2, '0')}' 16 | '${green.toRadixString(16).padLeft(2, '0')}' 17 | '${blue.toRadixString(16).padLeft(2, '0')}'; 18 | } 19 | -------------------------------------------------------------------------------- /lib/model/pagination.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'pagination.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | Pagination _$PaginationFromJson(Map json) => Pagination() 10 | ..page = json['page'] as num? 11 | ..size = json['size'] as num? 12 | ..totalPage = json['totalPage'] as num? 13 | ..total = json['total'] as num? 14 | ..lastPage = json['lastPage'] as bool?; 15 | 16 | Map _$PaginationToJson(Pagination instance) => 17 | { 18 | 'page': instance.page, 19 | 'size': instance.size, 20 | 'totalPage': instance.totalPage, 21 | 'total': instance.total, 22 | 'lastPage': instance.lastPage, 23 | }; 24 | -------------------------------------------------------------------------------- /lib/component/img_error.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/colors.dart'; 3 | 4 | class ImgError extends StatelessWidget { 5 | final double? fontSize; 6 | 7 | const ImgError({Key? key, this.fontSize = 23}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Container( 12 | alignment: Alignment.center, 13 | decoration: BoxDecoration( 14 | border: Border.all(color: Color(0xFFF5F5F5), width: 0.6), 15 | borderRadius: BorderRadius.circular(8)), 16 | child: Transform.rotate( 17 | angle: 0.75, 18 | child: Text( 19 | 'error.png', 20 | style: TextStyle( 21 | color: lineColor, 22 | fontSize: fontSize, 23 | fontWeight: FontWeight.w500), 24 | ), 25 | ), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/component/normal_footer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/loading.dart'; 3 | 4 | class NormalFooter extends StatelessWidget { 5 | final bool hasMore; 6 | final String tipsText; 7 | 8 | const NormalFooter({Key? key, this.hasMore = false, this.tipsText = '没有更多了'}) 9 | : super(key: key); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return _buildFooter(); 14 | } 15 | 16 | Widget _buildFooter() { 17 | if (!hasMore) { 18 | return Container( 19 | height: 40, 20 | child: Center( 21 | child: Text( 22 | tipsText, 23 | style: TextStyle(color: Colors.grey), 24 | ), 25 | ), 26 | ); 27 | } else { 28 | return Container( 29 | height: 40, 30 | child: Loading(), 31 | ); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/makeUpCartInfoModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/shopping_cart/model/redeemModel.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'makeUpCartInfoModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class MakeUpCartInfoModel { 8 | ItemPoolBarVO? itemPoolBarVO; 9 | num? validStartTime; 10 | num? validEndTime; 11 | String? validTimeDesc; 12 | List? addBuyStepList; 13 | 14 | MakeUpCartInfoModel({this.validTimeDesc = ''}); 15 | 16 | factory MakeUpCartInfoModel.fromJson(Map json) => 17 | _$MakeUpCartInfoModelFromJson(json); 18 | } 19 | 20 | @JsonSerializable() 21 | class ItemPoolBarVO { 22 | num? subtotalPrice; 23 | String? promTip; 24 | 25 | ItemPoolBarVO(); 26 | 27 | factory ItemPoolBarVO.fromJson(Map json) => 28 | _$ItemPoolBarVOFromJson(json); 29 | } 30 | -------------------------------------------------------------------------------- /lib/ui/sort/model/categoryL1Item.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'categoryL1Item.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CategoryL1Item _$CategoryL1ItemFromJson(Map json) => 10 | CategoryL1Item() 11 | ..id = json['id'] as num? 12 | ..superCategoryId = json['superCategoryId'] as num? 13 | ..showIndex = json['showIndex'] as num? 14 | ..name = json['name'] as String?; 15 | 16 | Map _$CategoryL1ItemToJson(CategoryL1Item instance) => 17 | { 18 | 'id': instance.id, 19 | 'superCategoryId': instance.superCategoryId, 20 | 'showIndex': instance.showIndex, 21 | 'name': instance.name, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/component/img_palceholder.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/colors.dart'; 3 | 4 | class ImgPlaceHolder extends StatelessWidget { 5 | final double? fontSize; 6 | 7 | const ImgPlaceHolder({Key? key, this.fontSize = 23}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Container( 12 | alignment: Alignment.center, 13 | decoration: BoxDecoration( 14 | borderRadius: BorderRadius.circular(8), 15 | border: Border.all(color: backWhite, width: 0.5)), 16 | child: Transform.rotate( 17 | angle: 0.75, 18 | child: Text( 19 | 'NETEASE', 20 | style: TextStyle( 21 | color: textWhite, 22 | fontSize: fontSize, 23 | fontWeight: FontWeight.w700), 24 | ), 25 | ), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/priceModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'priceModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PriceModel _$PriceModelFromJson(Map json) => PriceModel() 10 | ..finalPrice = json['finalPrice'] == null 11 | ? null 12 | : FinalPrice.fromJson(json['finalPrice'] as Map) 13 | ..counterPrice = json['counterPrice'] as String? 14 | ..basicPrice = json['basicPrice'] as String?; 15 | 16 | Map _$PriceModelToJson(PriceModel instance) => 17 | { 18 | 'finalPrice': instance.finalPrice, 19 | 'counterPrice': instance.counterPrice, 20 | 'basicPrice': instance.basicPrice, 21 | }; 22 | -------------------------------------------------------------------------------- /lib/utils/constans.dart: -------------------------------------------------------------------------------- 1 | const String kefuKey = '96ee78c0d9633761581e89d5019c5595'; 2 | const String kefuUrl = 'https://cs.you.163.com/client?k=$kefuKey'; 3 | 4 | const String flutter2activity = 'plugins.want.flutter.io.GloableCookie'; 5 | const String flutter2activityParams = 'connect_params'; 6 | 7 | const String logIcon = 8 | 'https://yanxuan-item.nosdn.127.net/87e08c87410fb13b6e42a077ccd15165.png'; 9 | 10 | const String dftAvatarIcon = 11 | 'https://yanxuan.nosdn.127.net/8945ae63d940cc42406c3f67019c5cb6.png'; 12 | 13 | const String redPackageUrl = 14 | 'http://yanxuan.nosdn.127.net/352b0ea9b2d058094956efde167ef852.png'; 15 | 16 | const String redPackageHtml = 17 | 'https://act.you.163.com/act/pub/qAU4P437asfF.html'; 18 | 19 | const String pgy_api_key = '5fd74f41bc1842bb97b3f62859937b34'; 20 | const String pgy_appKey = '86f30c074e0db173411dfe6369ba818b'; 21 | 22 | const scroll_duration = 1500; 23 | -------------------------------------------------------------------------------- /lib/ui/sort/model/categoryGroupItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'categoryGroupItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CategoryGroupItem _$CategoryGroupItemFromJson(Map json) => 10 | CategoryGroupItem() 11 | ..id = json['id'] as num? 12 | ..name = json['name'] as String? 13 | ..categoryList = (json['categoryList'] as List?) 14 | ?.map((e) => Category.fromJson(e as Map)) 15 | .toList(); 16 | 17 | Map _$CategoryGroupItemToJson(CategoryGroupItem instance) => 18 | { 19 | 'id': instance.id, 20 | 'name': instance.name, 21 | 'categoryList': instance.categoryList, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/component/my_vertical_text.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter_app/constant/fonts.dart'; 3 | 4 | class VerticalText extends StatelessWidget { 5 | final String text; 6 | final TextStyle style; 7 | 8 | const VerticalText(this.text, {this.style = t14black}); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return _verticalText(text); 13 | } 14 | 15 | _verticalText(String text) { 16 | var length = text.length; 17 | List list = []; 18 | for (int i = 0; i < length; i++) { 19 | list.add(text[i]); 20 | } 21 | return Column( 22 | mainAxisSize: MainAxisSize.min, 23 | children: list 24 | .map((e) => Container( 25 | child: Text( 26 | e, 27 | style: style, 28 | ), 29 | )) 30 | .toList(), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 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 | -------------------------------------------------------------------------------- /lib/model/tabGroupModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'tabGroupModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TabGroupModel _$TabGroupModelFromJson(Map json) => 10 | TabGroupModel() 11 | ..categoryList = (json['categoryList'] as List?) 12 | ?.map((e) => TabModel.fromJson(e as Map)) 13 | .toList() 14 | ..tabList = (json['tabList'] as List?) 15 | ?.map((e) => TabModel.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$TabGroupModelToJson(TabGroupModel instance) => 19 | { 20 | 'categoryList': instance.categoryList, 21 | 'tabList': instance.tabList, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/brandIndexModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'brandIndexModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | BrandIndexModel _$BrandIndexModelFromJson(Map json) => 10 | BrandIndexModel() 11 | ..extInfo = json['extInfo'] as String? 12 | ..hasMore = json['hasMore'] as bool? 13 | ..itemList = (json['itemList'] as List?) 14 | ?.map((e) => ItemListItem.fromJson(e as Map)) 15 | .toList(); 16 | 17 | Map _$BrandIndexModelToJson(BrandIndexModel instance) => 18 | { 19 | 'extInfo': instance.extInfo, 20 | 'hasMore': instance.hasMore, 21 | 'itemList': instance.itemList, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/pin/model/pinRecommonModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'pinRecommonModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PinRecommonModel _$PinRecommonModelFromJson(Map json) => 10 | PinRecommonModel() 11 | ..name = json['name'] as String? 12 | ..price = json['price'] as num? 13 | ..id = json['id'] as num? 14 | ..itemId = json['itemId'] as num? 15 | ..picUrl = json['picUrl'] as String?; 16 | 17 | Map _$PinRecommonModelToJson(PinRecommonModel instance) => 18 | { 19 | 'name': instance.name, 20 | 'price': instance.price, 21 | 'id': instance.id, 22 | 'itemId': instance.itemId, 23 | 'picUrl': instance.picUrl, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/component/sliverAppBarDelegate.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | class SliverAppBarDelegate extends SliverPersistentHeaderDelegate { 6 | SliverAppBarDelegate({ 7 | required this.minHeight, 8 | required this.maxHeight, 9 | required this.child, 10 | }); 11 | 12 | final double minHeight; 13 | final double maxHeight; 14 | final Widget child; 15 | 16 | @override 17 | double get minExtent => minHeight; 18 | 19 | @override 20 | double get maxExtent => max(maxHeight, minHeight); 21 | 22 | @override 23 | Widget build( 24 | BuildContext context, double shrinkOffset, bool overlapsContent) { 25 | return child; 26 | } 27 | 28 | @override 29 | bool shouldRebuild(SliverAppBarDelegate oldDelegate) { 30 | return maxHeight != oldDelegate.maxHeight || 31 | minHeight != oldDelegate.minHeight || 32 | child != oldDelegate.child; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/lookCollectionModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/bannerInfo.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'lookCollectionModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class LookCollectionModel { 8 | num? id; 9 | String? tag; 10 | String? title; 11 | String? subtitle; 12 | List? lookList; 13 | 14 | LookCollectionModel(); 15 | 16 | factory LookCollectionModel.fromJson(Map json) => 17 | _$LookCollectionModelFromJson(json); 18 | } 19 | 20 | @JsonSerializable() 21 | class LookListItem { 22 | num? topicId; 23 | String? schemeUrl; 24 | String? avatar; 25 | String? nickName; 26 | String? content; 27 | bool? supportFlag; 28 | num? supportNum; 29 | BannerInfo? banner; 30 | 31 | LookListItem(); 32 | factory LookListItem.fromJson(Map json) => 33 | _$LookListItemFromJson(json); 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortListData.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'sortListData.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SortListData _$SortListDataFromJson(Map json) => SortListData() 10 | ..categoryItems = json['categoryItems'] == null 11 | ? null 12 | : SortlistCategoryItem.fromJson( 13 | json['categoryItems'] as Map) 14 | ..categoryL2List = (json['categoryL2List'] as List?) 15 | ?.map((e) => Category.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$SortListDataToJson(SortListData instance) => 19 | { 20 | 'categoryItems': instance.categoryItems, 21 | 'categoryL2List': instance.categoryL2List, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/sort/model/currentCategory.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/sort/model/bannerItem.dart'; 2 | import 'package:flutter_app/ui/sort/model/subCateListItem.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'currentCategory.g.dart'; 6 | 7 | @JsonSerializable() 8 | class CurrentCategory { 9 | num? id; 10 | num? superCategoryId; 11 | num? showIndex; 12 | String? name; 13 | String? frontName; 14 | String? frontDesc; 15 | String? bannerUrl; 16 | ShowItem? showItem; 17 | 18 | List? bannerList; 19 | List? subCateList; 20 | 21 | CurrentCategory(); 22 | 23 | factory CurrentCategory.fromJson(Map json) => 24 | _$CurrentCategoryFromJson(json); 25 | } 26 | 27 | @JsonSerializable() 28 | class ShowItem { 29 | num? id; 30 | String? picUrl; 31 | ShowItem(); 32 | 33 | factory ShowItem.fromJson(Map json) => 34 | _$ShowItemFromJson(json); 35 | } 36 | -------------------------------------------------------------------------------- /lib/ui/sort/model/hotListModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'hotListModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | HotListModel _$HotListModelFromJson(Map json) => HotListModel() 10 | ..currentCategory = json['currentCategory'] == null 11 | ? null 12 | : CurrentCategory.fromJson( 13 | json['currentCategory'] as Map) 14 | ..moreCategories = (json['moreCategories'] as List?) 15 | ?.map((e) => CurrentCategory.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$HotListModelToJson(HotListModel instance) => 19 | { 20 | 'currentCategory': instance.currentCategory, 21 | 'moreCategories': instance.moreCategories, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/postageVO.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'postageVO.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PostageVO _$PostageVOFromJson(Map json) => PostageVO() 10 | ..showTip = json['showTip'] as bool? 11 | ..postFree = json['postFree'] as bool? 12 | ..priceRangeId = json['priceRangeId'] as num? 13 | ..leftPostFreePrice = json['leftPostFreePrice'] as num? 14 | ..postageTip = json['postageTip'] as String?; 15 | 16 | Map _$PostageVOToJson(PostageVO instance) => { 17 | 'showTip': instance.showTip, 18 | 'postFree': instance.postFree, 19 | 'priceRangeId': instance.priceRangeId, 20 | 'leftPostFreePrice': instance.leftPostFreePrice, 21 | 'postageTip': instance.postageTip, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/mine/model/minePageItems.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'minePageItems.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | MinePageItems _$MinePageItemsFromJson(Map json) => 10 | MinePageItems() 11 | ..fundType = json['fundType'] as num? 12 | ..fundValue = json['fundValue'] as String? 13 | ..fundName = json['fundName'] as String? 14 | ..targetUrl = json['targetUrl'] as String? 15 | ..toast = json['toast'] as String?; 16 | 17 | Map _$MinePageItemsToJson(MinePageItems instance) => 18 | { 19 | 'fundType': instance.fundType, 20 | 'fundValue': instance.fundValue, 21 | 'fundName': instance.fundName, 22 | 'targetUrl': instance.targetUrl, 23 | 'toast': instance.toast, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/home/model/cells.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'cells.g.dart'; 4 | 5 | @JsonSerializable() 6 | class Cells { 7 | String? subTitleColor; 8 | bool? rcmdItem; 9 | String? schemeUrl; 10 | String? title; 11 | String? picUrl; 12 | bool? rcmdSort; 13 | int? itemCnt; 14 | int? itemFrom; 15 | String? subTitle; 16 | String? titleColor; 17 | bool? showPrice; 18 | String? popupUrl; 19 | int? leftTime; 20 | dynamic? id; 21 | String? targetUrl; 22 | List? itemList; 23 | 24 | Cells(); 25 | 26 | factory Cells.fromJson(Map json) => _$CellsFromJson(json); 27 | 28 | Map toJson() => _$CellsToJson(this); 29 | } 30 | 31 | @JsonSerializable() 32 | class ItemListItem { 33 | num? primarySkuPreSellStatus; 34 | String? picUrl; 35 | String? pieceUnitDesc; 36 | String? schemeUrl; 37 | num? pieceNum; 38 | num? primarySkuPreSellPrice; 39 | num? id; 40 | 41 | ItemListItem(); 42 | } 43 | -------------------------------------------------------------------------------- /lib/ui/home/model/categoryItemListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'categoryItemListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CategoryItemListItem _$CategoryItemListItemFromJson( 10 | Map json) => 11 | CategoryItemListItem() 12 | ..category = json['category'] == null 13 | ? null 14 | : Category.fromJson(json['category'] as Map) 15 | ..itemList = (json['itemList'] as List?) 16 | ?.map((e) => ItemListItem.fromJson(e as Map)) 17 | .toList(); 18 | 19 | Map _$CategoryItemListItemToJson( 20 | CategoryItemListItem instance) => 21 | { 22 | 'category': instance.category, 23 | 'itemList': instance.itemList, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/home/model/kingkongModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'kingkongModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | KingkongModel _$KingkongModelFromJson(Map json) => 10 | KingkongModel() 11 | ..currentCategory = json['currentCategory'] == null 12 | ? null 13 | : Category.fromJson(json['currentCategory'] as Map) 14 | ..categoryItemList = (json['categoryItemList'] as List?) 15 | ?.map((e) => CategoryItemListItem.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$KingkongModelToJson(KingkongModel instance) => 19 | { 20 | 'currentCategory': instance.currentCategory, 21 | 'categoryItemList': instance.categoryItemList, 22 | }; 23 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortlistCategoryItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'sortlistCategoryItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SortlistCategoryItem _$SortlistCategoryItemFromJson( 10 | Map json) => 11 | SortlistCategoryItem() 12 | ..category = json['category'] == null 13 | ? null 14 | : Category.fromJson(json['category'] as Map) 15 | ..itemList = (json['itemList'] as List?) 16 | ?.map((e) => ItemListItem.fromJson(e as Map)) 17 | .toList(); 18 | 19 | Map _$SortlistCategoryItemToJson( 20 | SortlistCategoryItem instance) => 21 | { 22 | 'category': instance.category, 23 | 'itemList': instance.itemList, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/skuSpecListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'skuSpecListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SkuSpecListItem _$SkuSpecListItemFromJson(Map json) => 10 | SkuSpecListItem() 11 | ..id = json['id'] as num? 12 | ..name = json['name'] as String? 13 | ..type = json['type'] as num? 14 | ..skuSpecValueList = (json['skuSpecValueList'] as List?) 15 | ?.map((e) => SkuSpecValue.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$SkuSpecListItemToJson(SkuSpecListItem instance) => 19 | { 20 | 'id': instance.id, 21 | 'name': instance.name, 22 | 'type': instance.type, 23 | 'skuSpecValueList': instance.skuSpecValueList, 24 | }; 25 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/want/WebViewActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.want 2 | 3 | import android.app.Activity 4 | import android.os.Bundle 5 | import android.webkit.WebChromeClient 6 | import android.webkit.WebView 7 | import com.example.untitled.R 8 | import java.util.HashMap 9 | 10 | class WebViewActivity : Activity() { 11 | override fun onCreate(savedInstanceState: Bundle?) { 12 | super.onCreate(savedInstanceState) 13 | setContentView(R.layout.webview) 14 | val webView = findViewById(R.id.webView) 15 | val intent = intent 16 | val map = intent.getSerializableExtra(pluginParams) 17 | 18 | var hashMap = HashMap() 19 | if (map != null) { 20 | @Suppress("UNCHECKED_CAST") 21 | hashMap = map as HashMap 22 | } 23 | val webViewClient = WebChromeClient() 24 | webView.webChromeClient = webViewClient 25 | webView.loadUrl(hashMap["url"].toString()) 26 | } 27 | } -------------------------------------------------------------------------------- /lib/model/orderCartItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'orderCartItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class OrderCartItem { 7 | num? itemId; 8 | num? skuId; 9 | num? count; 10 | num? originalPrice; 11 | num? retailPrice; 12 | num? actualPrice; 13 | num? totalPrice; 14 | num? subtotalPrice; 15 | num? retailPoint; 16 | num? actualPoint; 17 | num? source; 18 | num? preSellStatus; 19 | num? preSellPrice; 20 | num? preSellVolume; 21 | num? promType; 22 | num? preemptionStatus; 23 | num? type; 24 | num? extId; 25 | num? pointsPrice; 26 | 27 | String? picUrl; 28 | String? name; 29 | String? preSellDesc; 30 | String? promTag; 31 | String? id; 32 | List? specValueList; 33 | 34 | bool? isGift; 35 | bool? isAddBuy; 36 | bool? newItemFlag; 37 | bool? isAreaSupported; 38 | 39 | OrderCartItem(); 40 | 41 | factory OrderCartItem.fromJson(Map json) => 42 | _$OrderCartItemFromJson(json); 43 | } 44 | -------------------------------------------------------------------------------- /lib/utils/something.txt: -------------------------------------------------------------------------------- 1 | 2 | //防止底部布局被键盘弹起 3 | resizeToAvoidBottomInset: false, 4 | 5 | 序列化组件创建model 6 | 示例 profileModel.dart 7 | 严格按照这个model创建,命令行下面语句,自动生成 *.g.dart文件 8 | 两种方式 9 | flutter packages pub run build_runner build 10 | flutter packages pub run build_runner watch 11 | 12 | 13 | 14 | 安卓端打包arm平台(realease): 15 | 签名文件已配置好,terminal输入: 16 | flutter build apk --target-platform android-arm 17 | 18 | 19 | 错误解决(flutter packages pub run build_runner build exit code 78) 20 | flutter packages pub run build_runner build --delete-conflicting-outputs 21 | 22 | 23 | 24 | 从本地json文件中加载数据 25 | rootBundle 26 | .loadString('assets/json/home_data_json.json') 27 | .then((value) async { 28 | var _dataList = json.decode(value); 29 | if (_dataList != null) { 30 | var homeModel = HomeModel.fromJson(_dataList['data']['data']); 31 | } 32 | }); 33 | 34 | print('11111111111111111'); 35 | print('22222222222222222'); 36 | print('33333333333333333'); 37 | print('44444444444444444'); 38 | 39 | 40 | -------------------------------------------------------------------------------- /lib/ui/home/model/categoryHotSellModule.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'categoryHotSellModule.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | CategoryHotSellModule _$CategoryHotSellModuleFromJson( 10 | Map json) => 11 | CategoryHotSellModule() 12 | ..titleTargetUrl = json['titleTargetUrl'] as String? 13 | ..title = json['title'] as String? 14 | ..categoryList = (json['categoryList'] as List?) 15 | ?.map((e) => Category.fromJson(e as Map)) 16 | .toList(); 17 | 18 | Map _$CategoryHotSellModuleToJson( 19 | CategoryHotSellModule instance) => 20 | { 21 | 'titleTargetUrl': instance.titleTargetUrl, 22 | 'title': instance.title, 23 | 'categoryList': instance.categoryList, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/interstItemModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'interstItemModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | InterstItemModel _$InterstItemModelFromJson(Map json) => 10 | InterstItemModel() 11 | ..categoryCode = json['categoryCode'] as num? 12 | ..categoryName = json['categoryName'] as String? 13 | ..picUrl = json['picUrl'] as String? 14 | ..rank = json['rank'] as num? 15 | ..selectFlag = json['selectFlag'] as bool?; 16 | 17 | Map _$InterstItemModelToJson(InterstItemModel instance) => 18 | { 19 | 'categoryCode': instance.categoryCode, 20 | 'categoryName': instance.categoryName, 21 | 'picUrl': instance.picUrl, 22 | 'rank': instance.rank, 23 | 'selectFlag': instance.selectFlag, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/components/empty_cart_widget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/service_tag_widget.dart'; 3 | import 'package:flutter_app/constant/fonts.dart'; 4 | 5 | // ServerTagWidget 6 | class EmptyCartWidget extends StatelessWidget { 7 | @override 8 | Widget build(BuildContext context) { 9 | return Stack( 10 | children: [ 11 | Center( 12 | child: Column( 13 | mainAxisAlignment: MainAxisAlignment.center, 14 | children: [ 15 | Image.asset( 16 | 'assets/images/cart_none.png', 17 | width: 124, 18 | height: 124, 19 | ), 20 | Text( 21 | "去添加点什么吧", 22 | style: t14lightGrey, 23 | ) 24 | ], 25 | ), 26 | ), 27 | Container( 28 | color: Color(0xFFEEEEEE), 29 | child: ServerTagWidget(), 30 | ) 31 | ], 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/home/model/homeRecommendList.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'homeRecommendList.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | HomeRecommendList _$HomeRecommendListFromJson(Map json) => 10 | HomeRecommendList() 11 | ..itemList = (json['itemList'] as List?) 12 | ?.map((e) => ItemListItem.fromJson(e as Map)) 13 | .toList() 14 | ..rcmdVer = json['rcmdVer'] as String 15 | ..itemIdsStr = json['itemIdsStr'] as String 16 | ..hasMore = json['hasMore'] as bool; 17 | 18 | Map _$HomeRecommendListToJson(HomeRecommendList instance) => 19 | { 20 | 'itemList': instance.itemList, 21 | 'rcmdVer': instance.rcmdVer, 22 | 'itemIdsStr': instance.itemIdsStr, 23 | 'hasMore': instance.hasMore, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/carItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/shopping_cart/model/cartItemListItem.dart'; 2 | import 'package:flutter_app/ui/shopping_cart/model/giftStepListItem.dart'; 3 | import 'package:flutter_app/ui/shopping_cart/model/redeemModel.dart'; 4 | import 'package:json_annotation/json_annotation.dart'; 5 | 6 | part 'carItem.g.dart'; 7 | 8 | @JsonSerializable() 9 | class CarItem { 10 | num? id; 11 | num? promId; 12 | num? promType; 13 | List? cartItemList; 14 | String? promTip; 15 | Object? promTipList; 16 | bool? promSatisfy; 17 | bool? checked; 18 | bool? canCheck; 19 | bool? showCheck; 20 | bool? editChecked; 21 | num? promNotSatisfyType; 22 | num? promotionBtn; 23 | int? allowCount; 24 | num? type; 25 | num? suitCount; 26 | num? source; 27 | List? addBuyStepList; 28 | List? giftStepList; 29 | 30 | CarItem(); 31 | 32 | factory CarItem.fromJson(Map json) => 33 | _$CarItemFromJson(json); 34 | } 35 | -------------------------------------------------------------------------------- /lib/ui/userInfo/model/qrCodeModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'qrCodeModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | QrCodeModel _$QrCodeModelFromJson(Map json) => QrCodeModel() 10 | ..userId = json['userId'] as num? 11 | ..userName = json['userName'] as String? 12 | ..avatarUrl = json['avatarUrl'] as String? 13 | ..authIconUrl = json['authIconUrl'] as String? 14 | ..memberLevel = json['memberLevel'] as num? 15 | ..qrCode = json['qrCode'] as String?; 16 | 17 | Map _$QrCodeModelToJson(QrCodeModel instance) => 18 | { 19 | 'userId': instance.userId, 20 | 'userName': instance.userName, 21 | 'avatarUrl': instance.avatarUrl, 22 | 'authIconUrl': instance.authIconUrl, 23 | 'memberLevel': instance.memberLevel, 24 | 'qrCode': instance.qrCode, 25 | }; 26 | -------------------------------------------------------------------------------- /lib/component/sliver_footer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/fonts.dart'; 3 | import 'package:flutter_app/component/loading.dart'; 4 | 5 | class SliverFooter extends StatelessWidget { 6 | final bool hasMore; 7 | final String tipsText; 8 | 9 | const SliverFooter({Key? key, this.hasMore = false, this.tipsText = '没有更多了'}) 10 | : super(key: key); 11 | 12 | @override 13 | Widget build(BuildContext context) { 14 | return _buildSliver(_buildFooter()); 15 | } 16 | 17 | _buildSliver(Widget child) { 18 | return SliverToBoxAdapter( 19 | child: child, 20 | ); 21 | } 22 | 23 | Widget _buildFooter() { 24 | if (!hasMore) { 25 | return Container( 26 | height: 40, 27 | child: Center( 28 | child: Text( 29 | tipsText, 30 | style: t12grey, 31 | ), 32 | ), 33 | ); 34 | } else { 35 | return Container( 36 | height: 40, 37 | child: Loading(), 38 | ); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ui/home/model/flashSaleModuleItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'flashSaleModuleItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | FlashSaleModuleItem _$FlashSaleModuleItemFromJson(Map json) => 10 | FlashSaleModuleItem() 11 | ..itemId = json['itemId'] as num? 12 | ..originPrice = json['originPrice'] as num? 13 | ..activityPrice = json['activityPrice'] as num? 14 | ..picUrl = json['picUrl'] as String? 15 | ..showPicUrl = json['showPicUrl'] as String?; 16 | 17 | Map _$FlashSaleModuleItemToJson( 18 | FlashSaleModuleItem instance) => 19 | { 20 | 'itemId': instance.itemId, 21 | 'originPrice': instance.originPrice, 22 | 'activityPrice': instance.activityPrice, 23 | 'picUrl': instance.picUrl, 24 | 'showPicUrl': instance.showPicUrl, 25 | }; 26 | -------------------------------------------------------------------------------- /lib/ui/home/model/sceneLightShoppingGuideModule.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'sceneLightShoppingGuideModule.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SceneLightShoppingGuideModule _$SceneLightShoppingGuideModuleFromJson( 10 | Map json) => 11 | SceneLightShoppingGuideModule() 12 | ..styleItem = json['styleItem'] == null 13 | ? null 14 | : StyleItem.fromJson(json['styleItem'] as Map) 15 | ..styleBanner = json['styleBanner'] == null 16 | ? null 17 | : StyleItem.fromJson(json['styleBanner'] as Map); 18 | 19 | Map _$SceneLightShoppingGuideModuleToJson( 20 | SceneLightShoppingGuideModule instance) => 21 | { 22 | 'styleItem': instance.styleItem, 23 | 'styleBanner': instance.styleBanner, 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ui/component/model/searchParamModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'searchParamModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class SearchParamModel { 7 | String? keyWord; 8 | String? statSearch; 9 | num? sortType; 10 | bool? descSorted; 11 | num? categoryId; 12 | num? matchType; 13 | num? floorPrice; 14 | num? upperPrice; 15 | num? size; 16 | num? itemId; 17 | num? promotionId; 18 | bool? stillSearch; 19 | num? searchWordSource; 20 | bool? needPopWindow; 21 | num? source; 22 | 23 | SearchParamModel( 24 | {this.keyWord = '', 25 | this.sortType = 0, 26 | this.statSearch = '', 27 | this.descSorted, 28 | this.categoryId = 0, 29 | this.matchType = 0, 30 | this.floorPrice = -1, 31 | this.upperPrice = -1, 32 | this.size = 40, 33 | this.itemId = 0, 34 | this.stillSearch = false, 35 | this.searchWordSource = 5, 36 | this.needPopWindow = true}); 37 | 38 | Map toJson() => _$SearchParamModelToJson(this); 39 | } 40 | -------------------------------------------------------------------------------- /lib/ui/topic/model/topicItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/ui/goods_detail/model/bannerInfo.dart'; 2 | import 'package:flutter_app/ui/topic/model/buyNow.dart'; 3 | import 'package:json_annotation/json_annotation.dart'; 4 | 5 | part 'topicItem.g.dart'; 6 | 7 | @JsonSerializable() 8 | class TopicItem { 9 | String? topicId; 10 | num? type; 11 | num? pubType; 12 | num? readCount; 13 | num? style; 14 | String? schemeUrl; 15 | String? nickname; 16 | String? bannerUrl; 17 | String? avatar; 18 | String? title; 19 | String? subTitle; 20 | String? picUrl; 21 | String? newAppBanner; 22 | bool? hasVideo; 23 | bool? hasLookCollects; 24 | num? size; 25 | num? duration; 26 | num? supportNum; 27 | num? appBanHeight; 28 | num? appBanWidth; 29 | num? newAppBannerWidth; 30 | num? newAppBannerHeight; 31 | bool? supportFlag; 32 | BannerInfo? bannerInfo; 33 | List? lookPics; 34 | 35 | BuyNow? buyNow; 36 | 37 | TopicItem(); 38 | 39 | factory TopicItem.fromJson(Map json) => 40 | _$TopicItemFromJson(json); 41 | } 42 | -------------------------------------------------------------------------------- /lib/ui/home/model/newItemModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'newItemModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NewItemModel _$NewItemModelFromJson(Map json) => NewItemModel() 10 | ..scenePicUrl = json['scenePicUrl'] as String? 11 | ..simpleDesc = json['simpleDesc'] as String? 12 | ..retailPrice = json['retailPrice'] as num? 13 | ..itemTagList = (json['itemTagList'] as List?) 14 | ?.map((e) => NewItemTagModel.fromJson(e as Map)) 15 | .toList() 16 | ..id = (json['id'] as num?)?.toInt(); 17 | 18 | Map _$NewItemModelToJson(NewItemModel instance) => 19 | { 20 | 'scenePicUrl': instance.scenePicUrl, 21 | 'simpleDesc': instance.simpleDesc, 22 | 'retailPrice': instance.retailPrice, 23 | 'itemTagList': instance.itemTagList, 24 | 'id': instance.id, 25 | }; 26 | -------------------------------------------------------------------------------- /lib/ui/home/model/focusItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'focusItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | FocusItem _$FocusItemFromJson(Map json) => FocusItem() 10 | ..picUrl = json['picUrl'] as String? 11 | ..expireTime = json['expireTime'] as num? 12 | ..name = json['name'] as String? 13 | ..onlineTime = json['onlineTime'] as num? 14 | ..id = json['id'] as num? 15 | ..originSchemeUrl = json['originSchemeUrl'] as String? 16 | ..targetUrl = json['targetUrl'] as String?; 17 | 18 | Map _$FocusItemToJson(FocusItem instance) => { 19 | 'picUrl': instance.picUrl, 20 | 'expireTime': instance.expireTime, 21 | 'name': instance.name, 22 | 'onlineTime': instance.onlineTime, 23 | 'id': instance.id, 24 | 'originSchemeUrl': instance.originSchemeUrl, 25 | 'targetUrl': instance.targetUrl, 26 | }; 27 | -------------------------------------------------------------------------------- /lib/model/saturdayBuyModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_app/model/pagination.dart'; 2 | import 'package:json_annotation/json_annotation.dart'; 3 | 4 | part 'saturdayBuyModel.g.dart'; 5 | 6 | @JsonSerializable() 7 | class SaturdayBuyModel { 8 | Pagination? pagination; 9 | List? result; 10 | 11 | SaturdayBuyModel(); 12 | 13 | factory SaturdayBuyModel.fromJson(Map json) => 14 | _$SaturdayBuyModelFromJson(json); 15 | } 16 | 17 | @JsonSerializable() 18 | class Result { 19 | num? categoryId; 20 | String? description; 21 | num? id; 22 | bool? isRefundPay; 23 | num? itemId; 24 | num? joinUsers; 25 | bool? limitNewUser; 26 | num? limitPlatform; 27 | bool? limitTime; 28 | num? originPrice; 29 | String? picUrl; 30 | bool? postageFree; 31 | num? price; 32 | List? recentUsers; 33 | num? recommendRank; 34 | num? skuNum; 35 | num? startTime; 36 | num? status; 37 | num? tabId; 38 | String? title; 39 | num? userNum; 40 | 41 | Result(); 42 | 43 | factory Result.fromJson(Map json) => _$ResultFromJson(json); 44 | } 45 | -------------------------------------------------------------------------------- /lib/ui/home/qr_code_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/app_bar.dart'; 3 | 4 | class QRCodeResultPage extends StatefulWidget { 5 | final Map? param; 6 | 7 | const QRCodeResultPage({Key? key, this.param}) : super(key: key); 8 | 9 | @override 10 | _QRCodeResultPageState createState() => _QRCodeResultPageState(); 11 | } 12 | 13 | class _QRCodeResultPageState extends State { 14 | var result; 15 | 16 | @override 17 | void initState() { 18 | // TODO: implement initState 19 | setState(() { 20 | result = widget.param!['result']; 21 | }); 22 | super.initState(); 23 | } 24 | 25 | @override 26 | Widget build(BuildContext context) { 27 | return Scaffold( 28 | appBar: TopAppBar( 29 | title: '扫描结果', 30 | ).build(context), 31 | body: SingleChildScrollView( 32 | child: Container( 33 | padding: EdgeInsets.symmetric(horizontal: 10, vertical: 15), 34 | child: Text('${result.code.toString()}'), 35 | ), 36 | ), 37 | ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/wapitemDeliveryModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'wapitemDeliveryModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | WapitemDeliveryModel _$WapitemDeliveryModelFromJson( 10 | Map json) => 11 | WapitemDeliveryModel() 12 | ..status = json['status'] as num? 13 | ..addressId = json['addressId'] as num? 14 | ..addressName = json['addressName'] as String? 15 | ..deliveryTime = json['deliveryTime'] as String? 16 | ..deliveryStatus = json['deliveryStatus'] as num?; 17 | 18 | Map _$WapitemDeliveryModelToJson( 19 | WapitemDeliveryModel instance) => 20 | { 21 | 'status': instance.status, 22 | 'addressId': instance.addressId, 23 | 'addressName': instance.addressName, 24 | 'deliveryTime': instance.deliveryTime, 25 | 'deliveryStatus': instance.deliveryStatus, 26 | }; 27 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/model/giftStepListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'giftStepListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | GiftStepListItem _$GiftStepListItemFromJson(Map json) => 10 | GiftStepListItem() 11 | ..stepNo = json['stepNo'] as num? 12 | ..title = json['title'] as String? 13 | ..isSatisfy = json['isSatisfy'] as bool? 14 | ..ordered = json['ordered'] as bool? 15 | ..giftItemList = (json['giftItemList'] as List?) 16 | ?.map((e) => CartItemListItem.fromJson(e as Map)) 17 | .toList(); 18 | 19 | Map _$GiftStepListItemToJson(GiftStepListItem instance) => 20 | { 21 | 'stepNo': instance.stepNo, 22 | 'title': instance.title, 23 | 'isSatisfy': instance.isSatisfy, 24 | 'ordered': instance.ordered, 25 | 'giftItemList': instance.giftItemList, 26 | }; 27 | -------------------------------------------------------------------------------- /lib/ui/userInfo/model/userInfoModel.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'userInfoModel.g.dart'; 4 | 5 | @JsonSerializable() 6 | class UserInfoModel { 7 | bool? isUrs = true; 8 | User? user = User(); 9 | 10 | UserInfoModel(); 11 | 12 | factory UserInfoModel.fromJson(Map json) => 13 | _$UserInfoModelFromJson(json); 14 | } 15 | 16 | @JsonSerializable() 17 | class User { 18 | String? avatar; 19 | String? nickname = ''; 20 | String? id = ''; 21 | num? gender; 22 | String? mobile; 23 | num? birthYear; 24 | num? birthMonth; 25 | num? birthDay; 26 | num? memberLevel; 27 | String? uid; 28 | num? userType; 29 | bool? hasInterestCategory; 30 | List? aliases = []; 31 | 32 | User(); 33 | 34 | factory User.fromJson(Map json) => _$UserFromJson(json); 35 | } 36 | 37 | @JsonSerializable() 38 | class Aliases { 39 | String? alias; 40 | num? aliasType; 41 | String? mobile; 42 | num? frontGroupType; 43 | 44 | Aliases(); 45 | 46 | factory Aliases.fromJson(Map json) => 47 | _$AliasesFromJson(json); 48 | } 49 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/bannerInfo.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'bannerInfo.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | BannerInfo _$BannerInfoFromJson(Map json) => BannerInfo() 10 | ..duration = json['duration'] as num? 11 | ..hasVideo = json['hasVideo'] as bool? 12 | ..picUrl = json['picUrl'] as String? 13 | ..videoUrl = json['videoUrl'] as String? 14 | ..size = json['size'] as num? 15 | ..width = json['width'] as num? 16 | ..isVideo = json['isVideo'] as bool? 17 | ..height = json['height'] as num?; 18 | 19 | Map _$BannerInfoToJson(BannerInfo instance) => 20 | { 21 | 'duration': instance.duration, 22 | 'hasVideo': instance.hasVideo, 23 | 'picUrl': instance.picUrl, 24 | 'videoUrl': instance.videoUrl, 25 | 'size': instance.size, 26 | 'width': instance.width, 27 | 'isVideo': instance.isVideo, 28 | 'height': instance.height, 29 | }; 30 | -------------------------------------------------------------------------------- /lib/model/itemTagListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'itemTagListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ItemTagListItem _$ItemTagListItemFromJson(Map json) => 10 | ItemTagListItem() 11 | ..type = json['type'] as num? 12 | ..subType = json['subType'] as num? 13 | ..tagId = json['tagId'] as num? 14 | ..itemId = json['itemId'] as num? 15 | ..name = json['name'] as String? 16 | ..forbidJump = json['forbidJump'] as bool? 17 | ..freshmanExclusive = json['freshmanExclusive'] as bool?; 18 | 19 | Map _$ItemTagListItemToJson(ItemTagListItem instance) => 20 | { 21 | 'type': instance.type, 22 | 'subType': instance.subType, 23 | 'tagId': instance.tagId, 24 | 'itemId': instance.itemId, 25 | 'name': instance.name, 26 | 'forbidJump': instance.forbidJump, 27 | 'freshmanExclusive': instance.freshmanExclusive, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/ui/sort/model/sortData.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'sortData.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SortData _$SortDataFromJson(Map json) => SortData() 10 | ..categoryL1List = (json['categoryL1List'] as List?) 11 | ?.map((e) => CategoryL1Item.fromJson(e as Map)) 12 | .toList() 13 | ..currentCategory = json['currentCategory'] == null 14 | ? null 15 | : CurrentCategory.fromJson( 16 | json['currentCategory'] as Map) 17 | ..categoryGroupList = (json['categoryGroupList'] as List?) 18 | ?.map((e) => CategoryGroupItem.fromJson(e as Map)) 19 | .toList(); 20 | 21 | Map _$SortDataToJson(SortData instance) => { 22 | 'categoryL1List': instance.categoryL1List, 23 | 'currentCategory': instance.currentCategory, 24 | 'categoryGroupList': instance.categoryGroupList, 25 | }; 26 | -------------------------------------------------------------------------------- /lib/ui/home/model/newItemTagModul.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'newItemTagModul.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NewItemTagModel _$NewItemTagModelFromJson(Map json) => 10 | NewItemTagModel() 11 | ..itemId = json['itemId'] as num? 12 | ..tagId = json['tagId'] as num? 13 | ..freshmanExclusive = json['freshmanExclusive'] as bool? 14 | ..forbidJump = json['forbidJump'] as bool? 15 | ..name = json['name'] as String? 16 | ..subType = json['subType'] as num? 17 | ..type = json['type'] as num?; 18 | 19 | Map _$NewItemTagModelToJson(NewItemTagModel instance) => 20 | { 21 | 'itemId': instance.itemId, 22 | 'tagId': instance.tagId, 23 | 'freshmanExclusive': instance.freshmanExclusive, 24 | 'forbidJump': instance.forbidJump, 25 | 'name': instance.name, 26 | 'subType': instance.subType, 27 | 'type': instance.type, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/ui/mine/model/phoneStatusModel.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'phoneStatusModel.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | PhoneStatusModel _$PhoneStatusModelFromJson(Map json) => 10 | PhoneStatusModel() 11 | ..status = json['status'] as num? 12 | ..mobile = json['mobile'] as String? 13 | ..ucMobile = json['ucMobile'] as String? 14 | ..degrade = json['degrade'] as bool? 15 | ..mobileBindFlowControl = json['mobileBindFlowControl'] as bool? 16 | ..frequentlyAccount = json['frequentlyAccount'] as bool?; 17 | 18 | Map _$PhoneStatusModelToJson(PhoneStatusModel instance) => 19 | { 20 | 'status': instance.status, 21 | 'mobile': instance.mobile, 22 | 'ucMobile': instance.ucMobile, 23 | 'degrade': instance.degrade, 24 | 'mobileBindFlowControl': instance.mobileBindFlowControl, 25 | 'frequentlyAccount': instance.frequentlyAccount, 26 | }; 27 | -------------------------------------------------------------------------------- /lib/ui/home/model/floorItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'floorItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | FloorItem _$FloorItemFromJson(Map json) => FloorItem( 10 | (json['layout'] as num?)?.toInt(), 11 | (json['columnNum'] as num?)?.toInt(), 12 | (json['floorType'] as num?)?.toInt(), 13 | (json['cells'] as List?) 14 | ?.map((e) => Cells.fromJson(e as Map)) 15 | .toList(), 16 | (json['style'] as num?)?.toInt(), 17 | (json['taskId'] as num?)?.toInt(), 18 | json['height'] as num?, 19 | ); 20 | 21 | Map _$FloorItemToJson(FloorItem instance) => { 22 | 'layout': instance.layout, 23 | 'columnNum': instance.columnNum, 24 | 'floorType': instance.floorType, 25 | 'cells': instance.cells, 26 | 'style': instance.style, 27 | 'taskId': instance.taskId, 28 | 'height': instance.height, 29 | }; 30 | -------------------------------------------------------------------------------- /lib/ui/sort/model/subCateListItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'subCateListItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | SubCateListItem _$SubCateListItemFromJson(Map json) => 10 | SubCateListItem() 11 | ..id = json['id'] as num? 12 | ..superCategoryId = json['superCategoryId'] as num? 13 | ..showIndex = json['showIndex'] as num? 14 | ..name = json['name'] as String? 15 | ..frontName = json['frontName'] as String? 16 | ..frontDesc = json['frontDesc'] as String? 17 | ..bannerUrl = json['bannerUrl'] as String?; 18 | 19 | Map _$SubCateListItemToJson(SubCateListItem instance) => 20 | { 21 | 'id': instance.id, 22 | 'superCategoryId': instance.superCategoryId, 23 | 'showIndex': instance.showIndex, 24 | 'name': instance.name, 25 | 'frontName': instance.frontName, 26 | 'frontDesc': instance.frontDesc, 27 | 'bannerUrl': instance.bannerUrl, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/commentsItem.dart: -------------------------------------------------------------------------------- 1 | import 'package:json_annotation/json_annotation.dart'; 2 | 3 | part 'commentsItem.g.dart'; 4 | 5 | @JsonSerializable() 6 | class CommentsItem { 7 | num? id; 8 | num? itemId; 9 | num? skuId; 10 | num? packageId; 11 | String? itemName; 12 | String? itemIconUrl; 13 | List? skuInfo; 14 | String? frontUserName; 15 | String? frontUserAvatar; 16 | 17 | String? content; 18 | 19 | num? createTime; 20 | 21 | List? picList; 22 | num? memberLevel; 23 | StarVO? starVO; 24 | num? star; 25 | 26 | CommentItemTagVO? commentItemTagVO; 27 | 28 | CommentsItem(); 29 | 30 | factory CommentsItem.fromJson(Map json) => 31 | _$CommentsItemFromJson(json); 32 | } 33 | 34 | @JsonSerializable() 35 | class StarVO { 36 | num? star; 37 | 38 | StarVO(); 39 | factory StarVO.fromJson(Map json) => _$StarVOFromJson(json); 40 | } 41 | 42 | @JsonSerializable() 43 | class CommentItemTagVO { 44 | num? type; 45 | String? schemeUrl; 46 | 47 | CommentItemTagVO(); 48 | 49 | factory CommentItemTagVO.fromJson(Map json) => 50 | _$CommentItemTagVOFromJson(json); 51 | } 52 | -------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter component test. 2 | // 3 | // To perform an interaction with a component in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the component 6 | // tree, read text, and verify that the values of component properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_app/main.dart'; 10 | import 'package:flutter_test/flutter_test.dart'; 11 | 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /lib/channel/globalCookie.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | import 'dart:io'; 3 | import 'package:flutter_app/channel/index.dart'; 4 | import 'package:flutter_app/http_manager/net_contants.dart'; 5 | 6 | class GlobalCookie { 7 | factory GlobalCookie() { 8 | return _instance ??= GlobalCookie._(); 9 | } 10 | 11 | GlobalCookie._(); 12 | 13 | static GlobalCookie? _instance; 14 | 15 | /// Get globalCookieValue 16 | Future globalCookieValue(String url) { 17 | return channel.invokeMethod( 18 | 'globalCookieValue', {'url': url}).then((String? result) { 19 | return result ?? ''; 20 | }); 21 | } 22 | 23 | /// Get globalCookieValue 24 | Future clearCookie() { 25 | return channel.invokeMethod('clearCookie', 26 | {'url': NetConstants.baseUrl}).then((bool? result) { 27 | return result ?? false; 28 | }); 29 | } 30 | 31 | /// Get globalCookieValue 32 | Future install() { 33 | return channel.invokeMethod( 34 | Platform.isIOS ? 'gotoAppStore' : 'installApk', 35 | {'url': NetConstants.baseUrl}).then((bool? result) { 36 | return result ?? false; 37 | }); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /lib/ui/topic/model/buyNow.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'buyNow.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | BuyNow _$BuyNowFromJson(Map json) => BuyNow() 10 | ..itemId = json['itemId'] as num? 11 | ..purchaseAttribute = json['purchaseAttribute'] as num? 12 | ..countPrice = json['countPrice'] as num? 13 | ..retailPrice = json['retailPrice'] as num? 14 | ..primarySkuId = json['primarySkuId'] as num? 15 | ..itemName = json['itemName'] as String? 16 | ..itemUrl = json['itemUrl'] as String? 17 | ..valid = json['valid'] as bool?; 18 | 19 | Map _$BuyNowToJson(BuyNow instance) => { 20 | 'itemId': instance.itemId, 21 | 'purchaseAttribute': instance.purchaseAttribute, 22 | 'countPrice': instance.countPrice, 23 | 'retailPrice': instance.retailPrice, 24 | 'primarySkuId': instance.primarySkuId, 25 | 'itemName': instance.itemName, 26 | 'itemUrl': instance.itemUrl, 27 | 'valid': instance.valid, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/component/line_title.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/constant/colors.dart'; 3 | 4 | class LineTitle extends StatelessWidget { 5 | final String title; 6 | final TextStyle style; 7 | 8 | const LineTitle({ 9 | Key? key, 10 | required this.title, 11 | this.style = const TextStyle( 12 | fontSize: 17, 13 | color: textBlack, 14 | height: 1.1, 15 | fontWeight: FontWeight.w500, 16 | ), 17 | }) : super(key: key); 18 | 19 | @override 20 | Widget build(BuildContext context) { 21 | return Container( 22 | padding: EdgeInsets.symmetric(vertical: 12), 23 | child: Row( 24 | mainAxisAlignment: MainAxisAlignment.center, 25 | children: [ 26 | _titleLine(), 27 | Padding( 28 | padding: EdgeInsets.symmetric(horizontal: 6), 29 | child: Text( 30 | "$title", 31 | style: style, 32 | ), 33 | ), 34 | _titleLine(), 35 | ], 36 | ), 37 | ); 38 | } 39 | 40 | _titleLine() { 41 | return Container( 42 | width: 12, 43 | color: textBlack, 44 | height: 1, 45 | ); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /lib/ui/mine/model/addressItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'addressItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | AddressItem _$AddressItemFromJson(Map json) => AddressItem() 10 | ..englishName = json['englishName'] as String? 11 | ..code = json['code'] as String? 12 | ..province = json['province'] as String? 13 | ..city = json['city'] as String? 14 | ..level = json['level'] as num? 15 | ..id = json['id'] as num? 16 | ..type = json['type'] as num? 17 | ..zonename = json['zonename'] as String? 18 | ..parentid = json['parentid'] as num?; 19 | 20 | Map _$AddressItemToJson(AddressItem instance) => 21 | { 22 | 'englishName': instance.englishName, 23 | 'code': instance.code, 24 | 'province': instance.province, 25 | 'city': instance.city, 26 | 'level': instance.level, 27 | 'id': instance.id, 28 | 'type': instance.type, 29 | 'zonename': instance.zonename, 30 | 'parentid': instance.parentid, 31 | }; 32 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/shoppingRewardRule.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'shoppingRewardRule.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | ShoppingRewardRule _$ShoppingRewardRuleFromJson(Map json) => 10 | ShoppingRewardRule() 11 | ..title = json['title'] as String? 12 | ..ruleList = (json['ruleList'] as List?) 13 | ?.map((e) => PolicyListItem.fromJson(e as Map)) 14 | .toList(); 15 | 16 | Map _$ShoppingRewardRuleToJson(ShoppingRewardRule instance) => 17 | { 18 | 'title': instance.title, 19 | 'ruleList': instance.ruleList, 20 | }; 21 | 22 | RuleListItem _$RuleListItemFromJson(Map json) => RuleListItem() 23 | ..title = json['title'] as String? 24 | ..content = json['content'] as String?; 25 | 26 | Map _$RuleListItemToJson(RuleListItem instance) => 27 | { 28 | 'title': instance.title, 29 | 'content': instance.content, 30 | }; 31 | -------------------------------------------------------------------------------- /lib/ui/goods_detail/model/goodDetailPre.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'goodDetailPre.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | GoodDetailPre _$GoodDetailPreFromJson(Map json) => 10 | GoodDetailPre() 11 | ..item = json['item'] == null 12 | ? null 13 | : GoodDetail.fromJson(json['item'] as Map) 14 | ..policyList = (json['policyList'] as List?) 15 | ?.map((e) => PolicyListItem.fromJson(e as Map)) 16 | .toList() 17 | ..commentCount = json['commentCount'] as num? 18 | ..commentWithPicCount = json['commentWithPicCount'] as num? 19 | ..source = json['source'] as num?; 20 | 21 | Map _$GoodDetailPreToJson(GoodDetailPre instance) => 22 | { 23 | 'item': instance.item, 24 | 'policyList': instance.policyList, 25 | 'commentCount': instance.commentCount, 26 | 'commentWithPicCount': instance.commentWithPicCount, 27 | 'source': instance.source, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/ui/home/model/tagItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'tagItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | TagItem _$TagItemFromJson(Map json) => TagItem() 10 | ..floorPrice = (json['floorPrice'] as num?)?.toDouble() 11 | ..picUrl = json['picUrl'] as String? 12 | ..newOnShelf = json['newOnShelf'] as bool? 13 | ..webIndexVerticalPicUrl = json['webIndexVerticalPicUrl'] as String? 14 | ..simpleDesc = json['simpleDesc'] as String? 15 | ..name = json['name'] as String? 16 | ..appListPicUrl = json['appListPicUrl'] as String? 17 | ..id = (json['id'] as num?)?.toInt(); 18 | 19 | Map _$TagItemToJson(TagItem instance) => { 20 | 'floorPrice': instance.floorPrice, 21 | 'picUrl': instance.picUrl, 22 | 'newOnShelf': instance.newOnShelf, 23 | 'webIndexVerticalPicUrl': instance.webIndexVerticalPicUrl, 24 | 'simpleDesc': instance.simpleDesc, 25 | 'name': instance.name, 26 | 'appListPicUrl': instance.appListPicUrl, 27 | 'id': instance.id, 28 | }; 29 | -------------------------------------------------------------------------------- /lib/ui/shopping_cart/components/cart_num_filed.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:flutter/services.dart'; 4 | import 'package:flutter_app/constant/colors.dart'; 5 | import 'package:flutter_app/constant/fonts.dart'; 6 | 7 | class CartTextFiled extends CupertinoTextField { 8 | CartTextFiled( 9 | {final TextEditingController? controller, 10 | final int maxLines = 1, 11 | int? maxLength, 12 | TextStyle textStyle = t16black, 13 | bool enabled = true, 14 | Color borderColor = backRed, 15 | String counterText = '', 16 | String prefixText = '', 17 | String hintText = ''}) 18 | : super( 19 | keyboardType: TextInputType.number, 20 | obscureText: false, 21 | controller: controller, 22 | style: textStyle, 23 | enabled: enabled, 24 | autofocus: true, 25 | textAlign: TextAlign.center, 26 | inputFormatters: [FilteringTextInputFormatter.digitsOnly], 27 | decoration: BoxDecoration( 28 | border: Border.all(color: borderColor, width: 1), 29 | borderRadius: BorderRadius.circular(3), 30 | ), 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /lib/ui/pin/components/ruleWidget.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_app/component/global.dart'; 3 | import 'package:flutter_app/constant/colors.dart'; 4 | import 'package:flutter_app/constant/fonts.dart'; 5 | 6 | class RuleWidget extends StatelessWidget { 7 | const RuleWidget({Key? key}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Container( 12 | color: backWhite, 13 | padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10), 14 | child: Column( 15 | children: [ 16 | GestureDetector( 17 | child: Row( 18 | children: [ 19 | Expanded( 20 | child: Text( 21 | '免单团玩法', 22 | style: t14black, 23 | ), 24 | ), 25 | Text( 26 | '详细规则', 27 | style: t14grey, 28 | ), 29 | arrowRightIcon 30 | ], 31 | ), 32 | onTap: () {}, 33 | ), 34 | SizedBox(height: 20), 35 | Image.asset('assets/images/pin_mian_rule.png'), 36 | ], 37 | ), 38 | ); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/utils/local_storage.dart: -------------------------------------------------------------------------------- 1 | import 'package:shared_preferences/shared_preferences.dart'; 2 | 3 | class LocalStorage { 4 | static String keyWord = "key_word"; 5 | static String userName = "user_name"; 6 | static String userIcon = "user_icon"; 7 | static String pointsCnt = "points_cnt"; 8 | static String noticeList = "notice_list"; 9 | static String totalNum = 'total_num'; 10 | static String dftAddress = 'dft_address'; 11 | 12 | static SharedPreferences? _sp; 13 | 14 | // 如果_sp已存在,直接返回,为null时创建 15 | static Future get sp async { 16 | if (_sp == null) { 17 | _sp = await SharedPreferences.getInstance(); 18 | } 19 | return _sp; 20 | } 21 | 22 | static Future save(String key, String value) async { 23 | return (await sp)!.setString(key, value); 24 | } 25 | 26 | static dynamic get(String key) async { 27 | return (await sp)!.get(key); 28 | } 29 | 30 | static Future saveInt(String key, int value) async { 31 | return (await sp)!.setInt(key, value); 32 | } 33 | 34 | static Future getInt(String key) async { 35 | return (await sp)!.getInt(key); 36 | } 37 | 38 | static Future remove(String key) async { 39 | return (await sp)!.remove(key); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ui/home/model/styleItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'styleItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | StyleItem _$StyleItemFromJson(Map json) => StyleItem() 10 | ..targetUrl = json['targetUrl'] as String? 11 | ..title = json['title'] as String? 12 | ..picUrl = json['picUrl'] as String? 13 | ..originSchemeUrl = json['originSchemeUrl'] as String? 14 | ..descColor = json['descColor'] as String? 15 | ..titleColor = json['titleColor'] as String? 16 | ..desc = json['desc'] as String? 17 | ..picUrlList = 18 | (json['picUrlList'] as List?)?.map((e) => e as String?).toList(); 19 | 20 | Map _$StyleItemToJson(StyleItem instance) => { 21 | 'targetUrl': instance.targetUrl, 22 | 'title': instance.title, 23 | 'picUrl': instance.picUrl, 24 | 'originSchemeUrl': instance.originSchemeUrl, 25 | 'descColor': instance.descColor, 26 | 'titleColor': instance.titleColor, 27 | 'desc': instance.desc, 28 | 'picUrlList': instance.picUrlList, 29 | }; 30 | -------------------------------------------------------------------------------- /lib/ui/topic/model/navItem.g.dart: -------------------------------------------------------------------------------- 1 | // GENERATED CODE - DO NOT MODIFY BY HAND 2 | 3 | part of 'navItem.dart'; 4 | 5 | // ************************************************************************** 6 | // JsonSerializableGenerator 7 | // ************************************************************************** 8 | 9 | NavItem _$NavItemFromJson(Map json) => NavItem() 10 | ..id = json['id'] as num? 11 | ..picUrl = json['picUrl'] as String? 12 | ..mainTitle = json['mainTitle'] as String? 13 | ..viceTitle = json['viceTitle'] as String? 14 | ..columnUrl = json['columnUrl'] as String? 15 | ..onlineType = json['onlineType'] as bool? 16 | ..vaildStartTime = json['vaildStartTime'] as num? 17 | ..vaildEndTime = json['vaildEndTime'] as num? 18 | ..rank = json['rank'] as num?; 19 | 20 | Map _$NavItemToJson(NavItem instance) => { 21 | 'id': instance.id, 22 | 'picUrl': instance.picUrl, 23 | 'mainTitle': instance.mainTitle, 24 | 'viceTitle': instance.viceTitle, 25 | 'columnUrl': instance.columnUrl, 26 | 'onlineType': instance.onlineType, 27 | 'vaildStartTime': instance.vaildStartTime, 28 | 'vaildEndTime': instance.vaildEndTime, 29 | 'rank': instance.rank, 30 | }; 31 | --------------------------------------------------------------------------------