提交 9c6fe63b authored 作者: yueweilu's avatar yueweilu

格式化代码

上级 9254a4f2
...@@ -9,6 +9,7 @@ import 'package:flutter_book/utils/index.dart'; ...@@ -9,6 +9,7 @@ import 'package:flutter_book/utils/index.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'apis/index.dart'; import 'apis/index.dart';
class Global { class Global {
static Future<void> init() async { static Future<void> init() async {
// 确保 Flutter 绑定已经初始化 // 确保 Flutter 绑定已经初始化
...@@ -20,7 +21,7 @@ class Global { ...@@ -20,7 +21,7 @@ class Global {
// 检测网络变化 // 检测网络变化
Connectivity().onConnectivityChanged.listen((ConnectivityResult result) { Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
Console.log('网络变化--------------------------------$result'); Console.log('网络变化--------------------------------$result');
if(result !=ConnectivityResult.none && UserStore.to.isLogin){ if (result != ConnectivityResult.none && UserStore.to.isLogin) {
upload(); upload();
} }
}); });
...@@ -31,54 +32,53 @@ class Global { ...@@ -31,54 +32,53 @@ class Global {
// 配置存储 // 配置存储
Get.putAsync<StorageService>(() => StorageService().init()), Get.putAsync<StorageService>(() => StorageService().init()),
]).whenComplete(() { ]).whenComplete(() {
// 网络 // 网络
Get.put<HttpService>(HttpService()); Get.put<HttpService>(HttpService());
//配置基本设置 //配置基本设置
Get.put<ConfigStore>(ConfigStore()); Get.put<ConfigStore>(ConfigStore());
// //
Get.put<UserStore>(UserStore()); Get.put<UserStore>(UserStore());
}); });
} }
static void upload() async{ static void upload() async {
List<Map<String, dynamic>> data = await SqlManager.queryNoUploadData(); List<Map<String, dynamic>> data = await SqlManager.queryNoUploadData();
List<Map<String, dynamic>> finalData = List<Map<String, dynamic>>.from(data); List<Map<String, dynamic>> finalData =
List<Map<String, dynamic>>.from(data);
Console.log('Sql-----查询到的数据-----------------------$data'); Console.log('Sql-----查询到的数据-----------------------$data');
if(data.isNotEmpty){ if (data.isNotEmpty) {
for (int i = 0; i < data.length; i ++){ for (int i = 0; i < data.length; i++) {
Map<String, dynamic> temp = data[i]; Map<String, dynamic> temp = data[i];
// for (Map<String, dynamic> temp in data){ // for (Map<String, dynamic> temp in data){
// 如果是笔记 // 如果是笔记
if (temp['types'] == 3){ if (temp['types'] == 3) {
// 存储url的数组 // 存储url的数组
List<String> finalAudios = []; List<String> finalAudios = [];
// 存储url的数组 // 存储url的数组
List<String> finalImages = []; List<String> finalImages = [];
Map<String,dynamic> contentMap = jsonDecode(temp['note_content']); Map<String, dynamic> contentMap = jsonDecode(temp['note_content']);
List<dynamic> audios = contentMap['audio']; List<dynamic> audios = contentMap['audio'];
if(audios.isNotEmpty){ if (audios.isNotEmpty) {
for(String path in audios){ for (String path in audios) {
final url = await uploadSource(path: path); final url = await uploadSource(path: path);
finalAudios.add(url); finalAudios.add(url);
} }
} }
List<dynamic> images = contentMap['image']; List<dynamic> images = contentMap['image'];
if(images.isNotEmpty){ if (images.isNotEmpty) {
for(String path in images){ for (String path in images) {
final url = await uploadSource(path: path); final url = await uploadSource(path: path);
finalImages.add(url); finalImages.add(url);
} }
} }
Map<String,dynamic> finalContentMap = { Map<String, dynamic> finalContentMap = {
'text':contentMap['text'], 'text': contentMap['text'],
'audio': finalAudios, 'audio': finalAudios,
'image': finalImages 'image': finalImages
}; };
finalData[i] = Map<String,dynamic>.from(temp); finalData[i] = Map<String, dynamic>.from(temp);
finalData[i]['note_content'] = jsonEncode(finalContentMap); finalData[i]['note_content'] = jsonEncode(finalContentMap);
} }
} }
...@@ -90,12 +90,10 @@ class Global { ...@@ -90,12 +90,10 @@ class Global {
SqlManager.updateNotesId(result); SqlManager.updateNotesId(result);
} }
} }
} }
// 上传文件 // 上传文件
static Future<String> uploadSource({ static Future<String> uploadSource({required String path}) async {
required String path
}) async {
// String result = await CommonAPI.upload(path:path,fileTypes: 'comment'); // String result = await CommonAPI.upload(path:path,fileTypes: 'comment');
// return result; // return result;
OssTool tool = OssTool('zxts-comment-file'); OssTool tool = OssTool('zxts-comment-file');
...@@ -103,15 +101,15 @@ class Global { ...@@ -103,15 +101,15 @@ class Global {
Console.log('------response--------------------------${response.realUri}'); Console.log('------response--------------------------${response.realUri}');
return response.realUri.toString(); return response.realUri.toString();
} }
} }
/// 生命周期类 /// 生命周期类
class AppLifecycleObserver extends WidgetsBindingObserver { class AppLifecycleObserver extends WidgetsBindingObserver {
@override @override
void didChangeAppLifecycleState(AppLifecycleState state) { void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.paused || state == AppLifecycleState.detached) { if (state == AppLifecycleState.paused ||
state == AppLifecycleState.detached) {
SqlManager.closeDatabase(); // 应用进入后台时关闭数据库连接 SqlManager.closeDatabase(); // 应用进入后台时关闭数据库连接
} }
} }
} }
\ No newline at end of file
...@@ -36,62 +36,62 @@ void main() { ...@@ -36,62 +36,62 @@ void main() {
} }
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
const MyApp({Key? key}): super(key: key); const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application. // This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ScreenUtilInit( return ScreenUtilInit(
designSize: const Size(375, 667), designSize: const Size(375, 667),
builder: (context, child) => GetBuilder<ConfigStore>( builder: (context, child) => GetBuilder<ConfigStore>(
builder: (config) => MaterialApp.router( builder: (config) => MaterialApp.router(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
title: '紫荆数智学堂', title: '紫荆数智学堂',
theme: AppTheme.light, theme: AppTheme.light,
darkTheme: AppTheme.dark, darkTheme: AppTheme.dark,
themeMode: ThemeMode.light, themeMode: ThemeMode.light,
routerConfig: Routes.config, routerConfig: Routes.config,
builder: CustomToast.init( builder: CustomToast.init(
context: context, context: context,
builder: (context, child) { builder: (context, child) {
return ScrollConfiguration( return ScrollConfiguration(
behavior: _NoShadowScrollBehavior(), behavior: _NoShadowScrollBehavior(),
child: OKToast( child: OKToast(
radius: 8.0, radius: 8.0,
backgroundColor: const Color(0xFF000000).withOpacity(0.2), backgroundColor: const Color(0xFF000000).withOpacity(0.2),
textPadding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0), textPadding: const EdgeInsets.symmetric(
position: ToastPosition.bottom, horizontal: 16.0, vertical: 10.0),
// textStyle: , position: ToastPosition.bottom,
child: child ?? const Material(), // textStyle: ,
), child: child ?? const Material(),
);
},
), ),
supportedLocales: const [ );
Locale.fromSubtags(languageCode: 'zh'), },
],
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
// S.delegate,
],
locale: PlatformDispatcher.instance.locale,
// supportedLocales: S.delegate.supportedLocales,
),
), ),
); supportedLocales: const [
Locale.fromSubtags(languageCode: 'zh'),
],
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
// S.delegate,
],
locale: PlatformDispatcher.instance.locale,
// supportedLocales: S.delegate.supportedLocales,
),
),
);
} }
} }
class _NoShadowScrollBehavior extends ScrollBehavior { class _NoShadowScrollBehavior extends ScrollBehavior {
@override @override
Widget buildOverscrollIndicator( Widget buildOverscrollIndicator(
BuildContext context, BuildContext context,
Widget child, Widget child,
ScrollableDetails details, ScrollableDetails details,
) { ) {
switch (getPlatform(context)) { switch (getPlatform(context)) {
case TargetPlatform.iOS: case TargetPlatform.iOS:
case TargetPlatform.macOS: case TargetPlatform.macOS:
...@@ -117,5 +117,3 @@ class _NoShadowScrollBehavior extends ScrollBehavior { ...@@ -117,5 +117,3 @@ class _NoShadowScrollBehavior extends ScrollBehavior {
} }
} }
} }
...@@ -22,7 +22,7 @@ class StorageService extends GetxService { ...@@ -22,7 +22,7 @@ class StorageService extends GetxService {
} }
///存储list类型 ///存储list类型
Future<bool> setList(String key, List<String> value) async{ Future<bool> setList(String key, List<String> value) async {
return await _prefs.setStringList(key, value); return await _prefs.setStringList(key, value);
} }
...@@ -45,6 +45,7 @@ class StorageService extends GetxService { ...@@ -45,6 +45,7 @@ class StorageService extends GetxService {
List<String> getList(String key) { List<String> getList(String key) {
return _prefs.getStringList(key) ?? []; return _prefs.getStringList(key) ?? [];
} }
/// 获取object /// 获取object
Map? getObject(String key) { Map? getObject(String key) {
String? data = _prefs.getString(key); String? data = _prefs.getString(key);
...@@ -55,12 +56,4 @@ class StorageService extends GetxService { ...@@ -55,12 +56,4 @@ class StorageService extends GetxService {
Future<bool> remove(String key) async { Future<bool> remove(String key) async {
return await _prefs.remove(key); return await _prefs.remove(key);
} }
}
}
\ No newline at end of file
...@@ -7,9 +7,8 @@ class ConfigStore extends GetxController { ...@@ -7,9 +7,8 @@ class ConfigStore extends GetxController {
void onInit() { void onInit() {
super.onInit(); super.onInit();
_initThemeMode(); _initThemeMode();
} }
/// 主题模式 /// 主题模式
void _initThemeMode() { void _initThemeMode() {
final theme = StorageService.to.getString(C.localThemeMode); final theme = StorageService.to.getString(C.localThemeMode);
...@@ -26,4 +25,4 @@ class ConfigStore extends GetxController { ...@@ -26,4 +25,4 @@ class ConfigStore extends GetxController {
} }
AppTheme.setSystemStyle(); AppTheme.setSystemStyle();
} }
} }
\ No newline at end of file
part of store; part of store;
class UserStore extends GetxController{ class UserStore extends GetxController {
// 获取 UserStore 实例 // 获取 UserStore 实例
static UserStore get to => Get.find(); static UserStore get to => Get.find();
// 是否登录 // 是否登录
bool _isLogin = false; bool _isLogin = false;
String _token = ''; String _token = '';
String get token => _token;
String get token => _token;
String _accessToken = ''; String _accessToken = '';
String get accessToken => _accessToken; String get accessToken => _accessToken;
bool get isLogin => _isLogin;
bool get isLogin=> _isLogin;
bool get hasToken => _token.isNotEmpty; bool get hasToken => _token.isNotEmpty;
UserModel _info = UserModel(); UserModel _info = UserModel();
UserModel get info => _info; UserModel get info => _info;
// 是否需要登录 // 是否需要登录
final ValueNotifier<bool> _needLogin = ValueNotifier<bool>(false); final ValueNotifier<bool> _needLogin = ValueNotifier<bool>(false);
ValueNotifier<bool> get needLogin => _needLogin; ValueNotifier<bool> get needLogin => _needLogin;
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
_token = StorageService.to.getString(kLocalToken); _token = StorageService.to.getString(kLocalToken);
} }
Future<void>login(UserModel value) async{ Future<void> login(UserModel value) async {
_token = value.token??''; _token = value.token ?? '';
_accessToken = value.accessToken??''; _accessToken = value.accessToken ?? '';
await StorageService.to.setString(kLocalToken,_token); await StorageService.to.setString(kLocalToken, _token);
await StorageService.to.setString(kLocalAccessToken, value.accessToken??''); await StorageService.to
await StorageService.to.setString(kLocalUserInfo, jsonEncode(value.toJson())); .setString(kLocalAccessToken, value.accessToken ?? '');
await StorageService.to
.setString(kLocalUserInfo, jsonEncode(value.toJson()));
_needLogin.value = false; _needLogin.value = false;
_info = value; _info = value;
_isLogin = true; _isLogin = true;
update(); update();
} }
Future<void> setToken(String value) async { Future<void> setToken(String value) async {
await StorageService.to.setString(kLocalToken, value); await StorageService.to.setString(kLocalToken, value);
_token = value; _token = value;
...@@ -55,7 +59,8 @@ class UserStore extends GetxController{ ...@@ -55,7 +59,8 @@ class UserStore extends GetxController{
} }
Future<void> setInfo(UserModel value) async { Future<void> setInfo(UserModel value) async {
await StorageService.to.setString(kLocalUserInfo, jsonEncode(value.toJson())); await StorageService.to
.setString(kLocalUserInfo, jsonEncode(value.toJson()));
_needLogin.value = false; _needLogin.value = false;
_info = value; _info = value;
} }
...@@ -71,11 +76,8 @@ class UserStore extends GetxController{ ...@@ -71,11 +76,8 @@ class UserStore extends GetxController{
} }
Future<void> profile() async { Future<void> profile() async {
if (!hasToken) return; if (!hasToken) return;
_isLogin = true; _isLogin = true;
update(); update();
} }
}
}
\ No newline at end of file
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_book/utils/index.dart'; import 'package:flutter_book/utils/index.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
abstract class AppTheme { abstract class AppTheme {
// 应用程序默认边距 // 应用程序默认边距
static final margin = 10.0.w; static final margin = 10.0.w;
// 主要/主题颜色的常量 // 主要/主题颜色的常量
static const primary = Color(0xFFAB1941); static const primary = Color(0xFFAB1941);
// 成功状态的颜色 // 成功状态的颜色
static const success = Color(0xFF23A757); static const success = Color(0xFF23A757);
// 警告状态的颜色 // 警告状态的颜色
static const warning = Color(0xFFFF1843); static const warning = Color(0xFFFF1843);
// 错误状态的颜色 // 错误状态的颜色
static const error = Color(0xFFDA1414); static const error = Color(0xFFDA1414);
// 信息/提示状态的颜色 // 信息/提示状态的颜色
static const info = Color(0xFF2E5AAC); static const info = Color(0xFF2E5AAC);
...@@ -31,24 +33,23 @@ abstract class AppTheme { ...@@ -31,24 +33,23 @@ abstract class AppTheme {
statusBarIconBrightness: Brightness.dark, statusBarIconBrightness: Brightness.dark,
systemNavigationBarDividerColor: Colors.transparent, systemNavigationBarDividerColor: Colors.transparent,
systemNavigationBarColor: Colors.white, systemNavigationBarColor: Colors.white,
systemNavigationBarIconBrightness: Brightness.dark systemNavigationBarIconBrightness: Brightness.dark);
);
// 亮色主题 // 亮色主题
static SystemUiOverlayStyle get systemStyleLight => systemStyle.copyWith( static SystemUiOverlayStyle get systemStyleLight => systemStyle.copyWith(
systemNavigationBarColor: const Color(0xFF000000), systemNavigationBarColor: const Color(0xFF000000),
systemNavigationBarIconBrightness: Brightness.light, systemNavigationBarIconBrightness: Brightness.light,
statusBarIconBrightness: Brightness.light, statusBarIconBrightness: Brightness.light,
statusBarBrightness: Brightness.dark, statusBarBrightness: Brightness.dark,
); );
// 暗色主题 // 暗色主题
static SystemUiOverlayStyle get systemStyleDark => systemStyle.copyWith( static SystemUiOverlayStyle get systemStyleDark => systemStyle.copyWith(
systemNavigationBarColor: const Color(0xFF000000), systemNavigationBarColor: const Color(0xFF000000),
systemNavigationBarIconBrightness: Brightness.light, systemNavigationBarIconBrightness: Brightness.light,
statusBarIconBrightness: Brightness.dark, statusBarIconBrightness: Brightness.dark,
statusBarBrightness: Brightness.light, statusBarBrightness: Brightness.light,
); );
/// 设置主题 /// 设置主题
static void setSystemStyle() { static void setSystemStyle() {
...@@ -87,6 +88,7 @@ abstract class AppTheme { ...@@ -87,6 +88,7 @@ abstract class AppTheme {
); );
return _getTheme(scheme); return _getTheme(scheme);
} }
static ThemeData get dark { static ThemeData get dark {
var scheme = ColorScheme.dark( var scheme = ColorScheme.dark(
background: const Color(0xFF0D0D0D), background: const Color(0xFF0D0D0D),
...@@ -141,7 +143,7 @@ abstract class AppTheme { ...@@ -141,7 +143,7 @@ abstract class AppTheme {
), ),
appBarTheme: AppBarTheme( appBarTheme: AppBarTheme(
systemOverlayStyle: SystemUiOverlayStyle.dark, systemOverlayStyle: SystemUiOverlayStyle.dark,
backgroundColor: const Color(0xFFAB1941).withOpacity(0.02), backgroundColor: const Color(0xFFAB1941).withOpacity(0.02),
scrolledUnderElevation: 0, scrolledUnderElevation: 0,
elevation: 0, elevation: 0,
centerTitle: true, centerTitle: true,
...@@ -186,8 +188,9 @@ abstract class AppTheme { ...@@ -186,8 +188,9 @@ abstract class AppTheme {
backgroundColor: Colors.white, backgroundColor: Colors.white,
unselectedItemColor: const Color(0xFF666666), unselectedItemColor: const Color(0xFF666666),
selectedItemColor: scheme.primary, selectedItemColor: scheme.primary,
unselectedLabelStyle: TextStyle(fontSize: 11.w,fontWeight: Fonts.medium), unselectedLabelStyle:
selectedLabelStyle: TextStyle(fontSize: 11.w,fontWeight: Fonts.medium), TextStyle(fontSize: 11.w, fontWeight: Fonts.medium),
selectedLabelStyle: TextStyle(fontSize: 11.w, fontWeight: Fonts.medium),
unselectedIconTheme: IconThemeData( unselectedIconTheme: IconThemeData(
size: 15.w, size: 15.w,
color: scheme.onBackground.withOpacity(0.5), color: scheme.onBackground.withOpacity(0.5),
...@@ -269,8 +272,4 @@ abstract class AppTheme { ...@@ -269,8 +272,4 @@ abstract class AppTheme {
), ),
); );
} }
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论