This commit is contained in:
tao
2025-08-29 13:36:26 +08:00
parent ec7848ad57
commit 6a9c801bd2
9 changed files with 75 additions and 44 deletions

View File

@@ -44,6 +44,11 @@ PODS:
- DKImagePickerController/PhotoGallery
- Flutter
- Flutter (1.0.0)
- flutter_image_compress_common (1.0.0):
- Flutter
- Mantle
- SDWebImage
- SDWebImageWebPCoder
- google_sign_in_ios (0.0.1):
- Flutter
- FlutterMacOS
@@ -73,10 +78,28 @@ PODS:
- GTMSessionFetcher/Core
- image_picker_ios (0.0.1):
- Flutter
- libwebp (1.5.0):
- libwebp/demux (= 1.5.0)
- libwebp/mux (= 1.5.0)
- libwebp/sharpyuv (= 1.5.0)
- libwebp/webp (= 1.5.0)
- libwebp/demux (1.5.0):
- libwebp/webp
- libwebp/mux (1.5.0):
- libwebp/demux
- libwebp/sharpyuv (1.5.0)
- libwebp/webp (1.5.0):
- libwebp/sharpyuv
- Mantle (2.2.0):
- Mantle/extobjc (= 2.2.0)
- Mantle/extobjc (2.2.0)
- PromisesObjC (2.4.0)
- SDWebImage (5.21.0):
- SDWebImage/Core (= 5.21.0)
- SDWebImage/Core (5.21.0)
- SDWebImageWebPCoder (0.14.6):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.17)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
@@ -92,6 +115,7 @@ PODS:
DEPENDENCIES:
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- Flutter (from `Flutter`)
- flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`)
- google_sign_in_ios (from `.symlinks/plugins/google_sign_in_ios/darwin`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
@@ -109,8 +133,11 @@ SPEC REPOS:
- GoogleUtilities
- GTMAppAuth
- GTMSessionFetcher
- libwebp
- Mantle
- PromisesObjC
- SDWebImage
- SDWebImageWebPCoder
- SwiftyGif
EXTERNAL SOURCES:
@@ -118,6 +145,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/file_picker/ios"
Flutter:
:path: Flutter
flutter_image_compress_common:
:path: ".symlinks/plugins/flutter_image_compress_common/ios"
google_sign_in_ios:
:path: ".symlinks/plugins/google_sign_in_ios/darwin"
image_picker_ios:
@@ -138,14 +167,18 @@ SPEC CHECKSUMS:
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_image_compress_common: ec1d45c362c9d30a3f6a0426c297f47c52007e3e
google_sign_in_ios: 4bb0e529b167cadc6ac785b6ed943c0a0a4cc1c9
GoogleSignIn: c7f09cfbc85a1abf69187be091997c317cc33b77
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
GTMAppAuth: 217a876b249c3c585a54fd6f73e6b58c4f5c4238
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sign_in_with_apple: f3bf75217ea4c2c8b91823f225d70230119b8440
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4

View File

@@ -13,7 +13,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>derma_flutter</string>
<string>Demacare</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>

View File

@@ -1,3 +1,4 @@
import 'package:derma_flutter/page/my/my_page.dart';
import 'package:derma_flutter/page/record/list/record_list_page.dart';
import 'package:flutter/material.dart';
import 'package:remixicon/remixicon.dart';
@@ -15,30 +16,35 @@ class LayoutPage extends StatefulWidget {
class _LayoutPageState extends State<LayoutPage> {
///分页
final PageController _pageController = PageController(initialPage: 1);
final PageController _pageController = PageController(initialPage: 0);
int get currentPage {
if (!_pageController.hasClients) return 1; // 没 attach 直接 0
return _pageController.page?.round() ?? 1;
}
//tabbar列表
//TabBar列表
final List<PageItem> _pages = [
PageItem(
name: "record",
icon: RemixIcons.history_line,
page: RecordListPage(),
),
PageItem(
name: "Home",
icon: RemixIcons.home_2_line,
page: HomePage(),
),
PageItem(
name: "Home",
name: "Record",
icon: RemixIcons.history_line,
page: RecordListPage(),
),
PageItem(
name: "Book",
icon: RemixIcons.book_open_line,
page: EducationListPage(),
),
PageItem(
name: "My",
icon: RemixIcons.user_line,
page: MyPage(),
),
];
@override
@@ -50,6 +56,7 @@ class _LayoutPageState extends State<LayoutPage> {
children: _pages.map((item) => item.page).toList(),
),
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
currentIndex: currentPage,
onTap: (index) {
_pageController.jumpToPage(index);

View File

@@ -53,8 +53,6 @@ class _HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin
quality: 85,
rotate: 0,
);
print("压缩前:${File(path).lengthSync()}");
print("压缩后长度${result?.length}");
EasyLoading.show(
status: 'Skin analysis in progress, please wait...',
maskType: EasyLoadingMaskType.clear,

View File

@@ -36,7 +36,7 @@ class UploadBox extends StatelessWidget {
left: 0,
child: Image.asset(
"assets/image/bg_hushi.png",
width: 0.7.sw,
width: 0.63.sw,
),
),
Positioned(

23
lib/page/my/my_page.dart Normal file
View File

@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';
import '../../widgets/common/app_backend.dart';
class MyPage extends StatefulWidget {
const MyPage({super.key});
@override
State<MyPage> createState() => _MyPageState();
}
class _MyPageState extends State<MyPage> {
@override
Widget build(BuildContext context) {
return AppBackend(
child: Column(
children: [
Text("ds")
],
),
);
}
}

View File

@@ -214,7 +214,7 @@ class _LoginPageState extends State<LoginPage> {
left: 20,
right: 20,
),
child: Column(
child: ListView(
children: [
LogoBox(),
PageHeader(),

View File

@@ -22,7 +22,7 @@ class AppBackend extends StatelessWidget {
stops: [0, 0.6, 1],
),
),
child: child,
child: SafeArea(child: child),
);
}
}

View File

@@ -14,11 +14,6 @@ class AppHeader extends StatefulWidget {
}
class _AppHeaderState extends State<AppHeader> {
void _handLogout() {
var appStore = context.read<AppStore>();
appStore.logout();
context.go(RoutePaths.login);
}
@override
Widget build(BuildContext context) {
@@ -48,31 +43,6 @@ class _AppHeaderState extends State<AppHeader> {
),
],
),
Row(
children: [
PopupMenuButton(
offset: const Offset(0, 50),
color: Theme.of(context).cardColor,
itemBuilder: (context) {
return [
PopupMenuItem(
onTap: _handLogout,
child: Text("Log out"),
),
];
},
child: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
color: Theme.of(context).colorScheme.primary,
shape: BoxShape.circle,
),
child: Icon(RemixIcons.user_3_line, color: Colors.white),
),
),
],
),
],
),
);