ecp_widget 2.0.18
ecp_widget: ^2.0.18 copied to clipboard
翼协云公共组件库
example/lib/main.dart
// ignore_for_file: depend_on_referenced_packages, duplicate_ignore
import 'dart:io';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:common_utils/common_utils.dart';
// ignore: depend_on_referenced_packages
import 'package:dio/dio.dart';
import 'package:ecp_common_app/ecp_common_app.dart';
import 'package:ecp_global/ecp_global.dart';
import 'package:ecp_theme/ecp_theme.dart';
import 'package:example/demo/demo_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:ecp_net/net.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
void main() async {
await initProperty();
runApp(const MyApp());
}
///初始化各个组件,包含第三方库组件
Future initProperty() async {
initNet();
LogUtil.init(tag: "example", isDebug: !kReleaseMode);
WidgetsFlutterBinding.ensureInitialized();
fullScreen();
initRefresh();
CachedNetworkImage.logLevel =
!kReleaseMode ? CacheManagerLogLevel.verbose : CacheManagerLogLevel.none;
}
void fullScreen() {
if (Platform.isAndroid) {
// 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。
SystemUiOverlayStyle systemUiOverlayStyle =
const SystemUiOverlayStyle(statusBarColor: Colors.transparent);
SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
// await AndroidInAppWebViewController.setWebContentsDebuggingEnabled(!kReleaseMode);
}
}
void initRefresh() {
EasyRefresh.defaultHeader = ClassicalHeader(
enableInfiniteRefresh: false,
refreshingText: "加载中",
refreshFailedText: "加载失败",
refreshedText: "加载完成",
noMoreText: "没有更多",
refreshReadyText: "放开刷新",
refreshText: "下拉刷新",
infoText: "上次更新%T",
textColor: Colors.grey,
);
EasyRefresh.defaultFooter = ClassicalFooter(
enableInfiniteLoad: false,
loadedText: "加载完成",
loadFailedText: "加载失败",
loadingText: "加载中",
loadReadyText: "加载更多",
noMoreText: "没有更多",
loadText: "加载更多",
infoText: "上次加载%T",
textColor: Colors.grey,
);
}
void initNet() {
var convert = NetConvert(
codeKeys: ["code"],
messageKeys: ['msg'],
successFlags: ['200'],
);
var options = BaseOptions(
baseUrl: _BaseUrl.sgsOADev,
connectTimeout: const Duration(milliseconds: 30 * 1000),
receiveTimeout: const Duration(milliseconds: 30 * 1000),
sendTimeout: const Duration(milliseconds: 30 * 1000),
);
NetConfig.instance
..convert = convert
..dynamicHeader = (options, header) async {
header["XT-token"] = RuntimeUtils.currentUser?.token;
header["Current-Dept"] = RuntimeUtils.currentDepartment?.deptId;
}
..initialDio = (dio) {
dio.interceptors.add(PrettyDioLogger(
requestHeader: true,
responseBody: true,
requestBody: true,
));
}
..baseOptions = options;
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
// var primary = const Color(0xFF2E6AFC);
return ScreenUtilInit(builder: (context, widget) {
return MaterialApp(
title: 'Flutter Demo',
theme: Themes.light,
navigatorKey: G.navigatorKey,
home: LoginPage(
nextPage: const DemoPage(),
onLoginSuccess: () async {
EcpGlobalDebugUtils.fillUserInfo();
},
),
builder: FlutterSmartDialog.init(),
localizationsDelegates: GlobalMaterialLocalizations.delegates,
supportedLocales: const [Locale('zh', 'CH')],
);
});
}
}
class _BaseUrl {
_BaseUrl._();
static const String sgsOADev = "http://135.0.123.110:8700/api";
}