diff --git a/backend/Log/OrbbecSDK.log.txt b/backend/Log/OrbbecSDK.log.txt index 1d9670cf..aca2d1d0 100644 Binary files a/backend/Log/OrbbecSDK.log.txt and b/backend/Log/OrbbecSDK.log.txt differ diff --git a/backend/build_app.py b/backend/build_app.py index 5780036d..59157426 100644 --- a/backend/build_app.py +++ b/backend/build_app.py @@ -233,7 +233,7 @@ def copy_data_files(): data_dir = os.path.join('dist', 'BodyBalanceBackend', 'data') # 数据库文件列表 - 这些文件会在程序首次运行时自动创建 - db_files = ['body_balance.db'] + db_files = ['body_balance.db','common_items.json'] # 检查是否存在现有数据库文件,如果存在则复制 copied_count = 0 diff --git a/backend/config.ini b/backend/config.ini index 51d49d83..c8f0fc9d 100644 --- a/backend/config.ini +++ b/backend/config.ini @@ -11,6 +11,7 @@ cors_origins = * [DATABASE] path = D:/BodyCheck/data/body_balance.db +common_items_path = D:/BodyCheck/data/common_items.json backup_interval = 24 max_backups = 7 diff --git a/backend/main.py b/backend/main.py index 6b9fc593..48a889a4 100644 --- a/backend/main.py +++ b/backend/main.py @@ -385,10 +385,12 @@ class AppServer: @self.app.route('/api/common-items', methods=['GET']) def get_common_items(): try: - base_dir = os.path.dirname(sys.executable) if getattr(sys, 'frozen', False) else os.path.dirname(os.path.abspath(__file__)) - data_dir = os.path.join(base_dir, 'data') - os.makedirs(data_dir, exist_ok=True) - fpath = os.path.join(data_dir, 'common_items.json') + # 从配置读取通用项文件路径,支持相对backend目录 + fpath = self.config_manager.get_config_value('DATABASE', 'common_items_path', 'data/common_items.json') if self.config_manager else 'data/common_items.json' + if not os.path.isabs(fpath): + base_dir = os.path.dirname(os.path.abspath(__file__)) + fpath = os.path.join(base_dir, fpath) + os.makedirs(os.path.dirname(fpath), exist_ok=True) if not os.path.exists(fpath): with open(fpath, 'w', encoding='utf-8') as f: json.dump({'treatment': [], 'suggestion': []}, f, ensure_ascii=False) @@ -406,10 +408,12 @@ class AppServer: label = str(payload.get('label', '')).strip() if itype not in ['treatment', 'suggestion'] or not label: return jsonify({'success': False, 'error': '参数无效'}), 400 - base_dir = os.path.dirname(sys.executable) if getattr(sys, 'frozen', False) else os.path.dirname(os.path.abspath(__file__)) - data_dir = os.path.join(base_dir, 'data') - os.makedirs(data_dir, exist_ok=True) - fpath = os.path.join(data_dir, 'common_items.json') + # 从配置读取通用项文件路径,支持相对backend目录 + fpath = self.config_manager.get_config_value('DATABASE', 'common_items_path', 'data/common_items.json') if self.config_manager else 'data/common_items.json' + if not os.path.isabs(fpath): + base_dir = os.path.dirname(os.path.abspath(__file__)) + fpath = os.path.join(base_dir, fpath) + os.makedirs(os.path.dirname(fpath), exist_ok=True) data = {'treatment': [], 'suggestion': []} if os.path.exists(fpath): try: @@ -436,10 +440,12 @@ class AppServer: label = str(payload.get('label', '')).strip() if itype not in ['treatment', 'suggestion'] or not label: return jsonify({'success': False, 'error': '参数无效'}), 400 - base_dir = os.path.dirname(sys.executable) if getattr(sys, 'frozen', False) else os.path.dirname(os.path.abspath(__file__)) - data_dir = os.path.join(base_dir, 'data') - os.makedirs(data_dir, exist_ok=True) - fpath = os.path.join(data_dir, 'common_items.json') + # 从配置读取通用项文件路径,支持相对backend目录 + fpath = self.config_manager.get_config_value('DATABASE', 'common_items_path', 'data/common_items.json') if self.config_manager else 'data/common_items.json' + if not os.path.isabs(fpath): + base_dir = os.path.dirname(os.path.abspath(__file__)) + fpath = os.path.join(base_dir, fpath) + os.makedirs(os.path.dirname(fpath), exist_ok=True) data = {'treatment': [], 'suggestion': []} if os.path.exists(fpath): try: @@ -1190,7 +1196,7 @@ class AppServer: }), 400 # 验证数据格式 - supported_devices = ['camera', 'femtobolt','imu','pressure'] + supported_devices = ['camera1','camera2', 'femtobolt','imu','pressure'] for device_name in data.keys(): if device_name not in supported_devices: return jsonify({