Parcourir la source

Update 优化环境变量文件的实现方式

Yue il y a 1 mois
Parent
commit
654fb39e12

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.dev

@@ -0,0 +1,8 @@
+APP_ENV=dev
+APP_NAME=养殖场管理系统
+APP_VERSION=1.0.0-dev
+BASE_API_URL=http://192.168.0.81:8380
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=false
+IS_PDA=true
+WIN_DB_PATH=.demo/data

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.dev_no_pda

@@ -0,0 +1,8 @@
+APP_ENV=dev.no_pda
+APP_NAME=养殖场管理系统
+APP_VERSION=1.0.0-dev
+BASE_API_URL=http://192.168.0.81:8380
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=false
+IS_PDA=false
+WIN_DB_PATH=.demo/data

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.dev_offline

@@ -0,0 +1,8 @@
+APP_ENV=dev.offline
+APP_NAME=养殖场管理系统(脱机)
+APP_VERSION=1.0.0-dev
+BASE_API_URL=http://192.168.0.81:8380
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=true
+IS_PDA=true
+WIN_DB_PATH=.demo/data

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.prod

@@ -0,0 +1,8 @@
+APP_ENV=prod
+APP_NAME=养殖场管理系统
+APP_VERSION=1.0.0
+BASE_API_URL=http://shvber.com:5067
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=false
+IS_PDA=true
+WIN_DB_PATH=data/db

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.prod_no_pda

@@ -0,0 +1,8 @@
+APP_ENV=prod.no_pda
+APP_NAME=养殖场管理系统
+APP_VERSION=1.0.0
+BASE_API_URL=http://shvber.com:5067
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=false
+IS_PDA=false
+WIN_DB_PATH=data/db

+ 8 - 0
UI/CF.APP/chicken_farm/.env/.env.prod_offline

@@ -0,0 +1,8 @@
+APP_ENV=prod.offline
+APP_NAME=养殖场管理系统(脱机)
+APP_VERSION=1.0.0
+BASE_API_URL=http://shvber.com:5067
+CLIENT_ID=35aee70ae7224eb9a48bc527955ddedc
+IS_OFFLINE=true
+IS_PDA=true
+WIN_DB_PATH=data/db

+ 12 - 10
UI/CF.APP/chicken_farm/lib/core/config/app_config.dart

@@ -1,28 +1,30 @@
-import 'package:chicken_farm/core/config/env/dev_config.dart';
+// import 'package:chicken_farm/core/config/env/dev_config.dart';
 // import 'package:chicken_farm/core/config/env/dev_no_pda_config.dart';
 // import 'package:chicken_farm/core/config/env/dev_offline_config.dart';
 // import 'package:chicken_farm/core/config/env/prod_config.dart';
+// import 'package:chicken_farm/core/config/env/prod_offline_config.dart';
 // import 'package:chicken_farm/core/config/env/prod_no_pda_config.dart';
+import 'package:chicken_farm/core/config/env/env_config.dart';
 import 'package:chicken_farm/core/utils/storage.dart';
 
 class AppConfig {
   static const String baseUrlKey = 'base_url';
   static const String clientIdKey = 'client_id';
-  static String baseUrl = Config.baseApiUrl; // 默认值
-  static String clientId = Config.clientId; // 默认值
+  static String baseUrl = EnvConfig.baseApiUrl; // 默认值
+  static String clientId = EnvConfig.clientId; // 默认值
 
   /// 是否为开发环境
-  static bool get isDev => Config.appEnv == 'dev';
+  static bool get isDev => EnvConfig.appEnv.contains('dev');
 
   /// 是否为生产环境
-  static bool get isProd => Config.appEnv == 'prod';
+  static bool get isProd => EnvConfig.appEnv.contains('prod');
 
-  static String get appName => Config.appName;
+  static String get appName => EnvConfig.appName;
 
-  static String get appVersion => Config.appVersion;
-  static bool get isOffline => Config.isOffline;
-  static bool get isPda => Config.isPda;
-  static String get winDbPath => Config.winDbPath;
+  static String get appVersion => EnvConfig.appVersion;
+  static bool get isOffline => EnvConfig.isOffline;
+  static bool get isPda => EnvConfig.isPda;
+  static String get winDbPath => EnvConfig.winDbPath;
 
   // 初始化配置
   static Future<void> init() async {

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/dev_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'dev';
-  static const String appName = '养殖场管理系统';
-  static const String baseApiUrl = 'http://192.168.0.81:8380';
-  static const String clientId = '35aee70ae7224eb9a48bc527955ddedc';
-  static const bool isOffline = false;
-  static const bool isPda = true;
-  static const String appVersion = '1.0.0-dev';
-  static const String winDbPath = '.demo/data';
-}

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/dev_no_pda_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'dev';
-  static const String appName = '养殖场管理系统';
-  static const String baseApiUrl = 'http://192.168.0.81:8380';
-  static const String clientId = '35aee70ae7224eb9a48bc527955ddedc';
-  static const bool isOffline = false;
-  static const bool isPda = false;
-  static const String appVersion = '1.0.0-dev';
-  static const String winDbPath = '.demo/data';
-}

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/dev_offline_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'dev';
-  static const String appName = '养殖场管理系统(脱机)';
-  static const String baseApiUrl = 'http://192.168.0.81:8380';
-  static const String clientId = '35aee70ae7224eb9a48bc527955ddedc';
-  static const bool isOffline = true;
-  static const bool isPda = true;
-  static const String appVersion = '1.0.0-dev';
-  static const String winDbPath = '.demo/data';
-}

+ 31 - 0
UI/CF.APP/chicken_farm/lib/core/config/env/env_config.dart

@@ -0,0 +1,31 @@
+class EnvConfig {
+  static const String appEnv = String.fromEnvironment(
+    'APP_ENV',
+    defaultValue: 'dev',
+  );
+  static const String appName = String.fromEnvironment(
+    "APP_NAME",
+    defaultValue: "养殖场管理系统",
+  );
+  static const String appVersion = String.fromEnvironment(
+    "APP_VERSION",
+    defaultValue: "1.0.0-dev",
+  );
+  static const String baseApiUrl = String.fromEnvironment(
+    "BASE_API_URL",
+    defaultValue: "'http://192.168.0.81:8380",
+  );
+  static const String clientId = String.fromEnvironment(
+    "CLIENT_ID",
+    defaultValue: "'35aee70ae7224eb9a48bc527955ddedc",
+  );
+  static const bool isOffline =
+      String.fromEnvironment("IS_OFFLINE", defaultValue: "false") == "true";
+  static const bool isPda =
+      String.fromEnvironment("IS_PDA", defaultValue: "true") == "true";
+
+  static const String winDbPath = String.fromEnvironment(
+    "WIN_DB_PATH",
+    defaultValue: ".demo/data",
+  );
+}

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/prod_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'prod';
-  static const String appName = '养殖场管理系统';
-  static const String baseApiUrl = 'https://prod-api.example.com';
-  static const String clientId = 'prod_client_id';
-  static const bool isOffline = false;
-  static const bool isPda = true;
-  static const String appVersion = '1.0.0';
-  static const String winDbPath = 'data';
-}

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/prod_no_pda_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'prod';
-  static const String appName = '养殖场管理系统';
-  static const String baseApiUrl = 'http://192.168.0.81:8380';
-  static const String clientId = '35aee70ae7224eb9a48bc527955ddedc';
-  static const bool isOffline = false;
-  static const bool isPda = false;
-  static const String appVersion = '1.0.0-dev';
-  static const String winDbPath = 'data';
-}

+ 0 - 10
UI/CF.APP/chicken_farm/lib/core/config/env/prod_offline_config.dart

@@ -1,10 +0,0 @@
-class Config {
-  static const String appEnv = 'prod';
-  static const String appName = '养殖场管理系统(脱机)';
-  static const String baseApiUrl = 'https://prod-api.example.com';
-  static const String clientId = 'prod_client_id';
-  static const bool isOffline = true;
-  static const bool isPda = true;
-  static const String appVersion = '1.0.0';
-  static const String winDbPath = 'data';
-}

+ 6 - 0
UI/CF.APP/chicken_farm/lib/main.dart

@@ -1,5 +1,7 @@
+import 'package:chicken_farm/core/config/env/env_config.dart';
 import 'package:chicken_farm/core/db/sqlite_manager.dart';
 import 'package:chicken_farm/core/services/pda/rfid_manager.dart';
+import 'package:chicken_farm/core/utils/logger.dart';
 import 'package:chicken_farm/vb_app.dart';
 import 'package:chicken_farm/core/config/app_config.dart';
 import 'package:chicken_farm/core/utils/loading.dart';
@@ -8,9 +10,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
 
 void main() async {
   WidgetsFlutterBinding.ensureInitialized();
+
   await AppConfig.init(); // 初始化配置
 
+  logger.w("当前环境:  ${EnvConfig.appEnv}");
+
   await SqliteManager().init(dbName: 'breeding.db');
+
   if (AppConfig.isPda) {
     await RfidManager.instance.init();
   }