From d8d5b56c13279491bcd2d022ebfad360b13ad07b Mon Sep 17 00:00:00 2001 From: super <2903208875@qq.com> Date: Mon, 6 Apr 2026 16:58:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=8B=E8=BD=BD=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/.env | 4 +- app/main.py | 27 ++++++++-- .../brand/components/BrandProductRiskTab.vue | 50 +++++++++++++++++++ 3 files changed, 75 insertions(+), 6 deletions(-) diff --git a/app/.env b/app/.env index 856e41a..085b36a 100644 --- a/app/.env +++ b/app/.env @@ -12,7 +12,7 @@ zn_username=%E8%87%AA%E5%8A%A8%E5%8C%96_Robot client_name=ShuFuAI -java_api_base=http://127.0.0.1:18080 -# java_api_base=http://8.136.19.173:18080 +# java_api_base=http://127.0.0.1:18080 +java_api_base=http://8.136.19.173:18080 diff --git a/app/main.py b/app/main.py index 6dbdfa9..1c561fb 100644 --- a/app/main.py +++ b/app/main.py @@ -154,17 +154,36 @@ class WindowAPI: ) return result[0] if result else '' - def save_file_from_url(self, url, default_filename='download.zip'): - """弹窗选择保存位置,从 url 下载文件并保存。用于品牌任务结果 zip 等。""" + def save_file_from_url(self, url, default_filename='download.bin'): + """弹窗选择保存位置,从 url 下载文件并保存。根据文件后缀动态设置保存类型。""" if not url or not url.strip(): return {'success': False, 'error': '下载地址为空'} + + filename = str(default_filename or 'download.bin').strip() or 'download.bin' + ext = os.path.splitext(filename)[1].lower() + + # 根据默认文件名后缀动态设置文件类型,避免固定为 zip 造成误导 + if ext == '.zip': + file_types = ('ZIP 压缩包 (*.zip)', '所有文件 (*.*)') + elif ext in ('.xlsx', '.xls'): + file_types = ('Excel 文件 (*.xlsx;*.xls)', '所有文件 (*.*)') + elif ext == '.csv': + file_types = ('CSV 文件 (*.csv)', '所有文件 (*.*)') + elif ext == '.txt': + file_types = ('文本文件 (*.txt)', '所有文件 (*.*)') + elif ext == '.json': + file_types = ('JSON 文件 (*.json)', '所有文件 (*.*)') + else: + file_types = ('所有文件 (*.*)',) + result = self._window.create_file_dialog( webview.SAVE_DIALOG, - save_filename=default_filename, - file_types=('ZIP 压缩包 (*.zip)', '所有文件 (*.*)') + save_filename=filename, + file_types=file_types ) if not result: return {'success': False, 'error': '用户取消'} + path = result[0] if isinstance(result, (list, tuple)) else result try: import requests diff --git a/frontend-vue/src/pages/brand/components/BrandProductRiskTab.vue b/frontend-vue/src/pages/brand/components/BrandProductRiskTab.vue index 6e41ad4..2fca269 100644 --- a/frontend-vue/src/pages/brand/components/BrandProductRiskTab.vue +++ b/frontend-vue/src/pages/brand/components/BrandProductRiskTab.vue @@ -75,6 +75,24 @@
与「推送到 Python 队列」一并下发,供 Python 区分处理场景。
+