提交暂存

This commit is contained in:
super
2026-03-27 22:00:01 +08:00
11 changed files with 74 additions and 27 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,18 @@
from queue import Empty
from flask import Blueprint, jsonify
from config import JSON_TASK_QUEUE
communication_bp = Blueprint('communication', __name__)
@communication_bp.route('/api/amazon/del_brand', methods=['GET', 'POST'])
def del_brand():
"""返回队列中的一个元素;队列为空时返回空提示。"""
try:
item = JSON_TASK_QUEUE.get_nowait()
return jsonify({'success': True, 'data': item})
except Empty:
return jsonify({'success': False, 'message': '队列为空', 'data': None})

View File

@@ -5,6 +5,7 @@ STITCH_WORKFLOW_ID = "7608813873483300907"
import os
from dotenv import load_dotenv
from queue import Queue
load_dotenv()
_base_url = os.getenv("base_url","http://159.75.121.33:15124")
@@ -38,11 +39,21 @@ os.environ['OSS_ACCESS_KEY_SECRET'] = accessKeySecret
os.environ['SECRET_KEY'] = "ddffc7c1d02121d9554d7b080b2511b6"
debug = False
version = "1.0.17"
debug = True
version = "1.0.13"
APP_UPDATE_URL = f"{_base_url}/api/version/latest" # 检测更新接口地址,返回 { "file_url": "...", "version": "x.x.x" }
os.environ['APP_VERSION'] = version
os.environ['APP_UPDATE_URL'] = APP_UPDATE_URL
# 队列
JSON_TASK_QUEUE = Queue()

View File

@@ -1,7 +1,7 @@
"""
基于 pywebview 实现的跨平台 UI需先登录方可使用
"""
from config import cache_path,debug,version,JAVA_API_BASE
from config import cache_path,debug,version,JAVA_API_BASE,JSON_TASK_QUEUE
import datetime
import json
import sys
@@ -234,6 +234,19 @@ class WindowAPI:
except Exception as e:
return {'success': False, 'error': str(e)}
def enqueue_json(self, data):
"""保存任务到队列"""
try:
payload = data
if isinstance(data, str):
payload = json.loads(data)
if not isinstance(payload, (dict, list)):
return {'success': False, 'error': '仅支持 JSON 对象或数组'}
JSON_TASK_QUEUE.put(payload)
return {'success': True, 'queue_size': JSON_TASK_QUEUE.qsize()}
except Exception as e:
return {'success': False, 'error': str(e)}
def _select_folder_win32():
"""Windows: 用 ctypes 调用系统文件夹选择对话框,打包成 exe 后也能正常弹窗(不依赖 tkinter"""
try:
@@ -279,24 +292,6 @@ def _select_folder_win32():
return ''
# def _select_folder_tk():
# """使用 tkinter 选择文件夹(在非 Windows 或作为后备)"""
# try:
#
# root = tkinter.Tk()
# root.withdraw()
# root.attributes('-topmost', True)
# path = filedialog.askdirectory(title='选择保存图片的文件夹')
# try:
# root.destroy()
# except Exception:
# pass
# return path if path else ''
# except Exception as e:
# print("tkinter 选择文件夹失败:", e)
# return ''
def _select_folder_tk():
import tkinter as tk
from tkinter import filedialog
@@ -323,10 +318,6 @@ def _select_folder_tk():
def select_folder():
"""弹窗选择文件夹返回路径空字符串表示取消。Windows 打包 exe 时优先用系统 API 避免 tkinter 不弹窗。"""
# if sys.platform == 'win32':
# path = _select_folder_win32()
# if path:
# return path
return _select_folder_tk()
@@ -356,9 +347,9 @@ def main():
)
api = WindowAPI(window)
window.expose(api.close, api.minimize, api.maximize, api.toggle_maximize, generate_images, api.save_image, api.save_image_to_folder, api.select_folder, api.select_brand_xlsx_files, api.select_brand_folder,
api.save_file_from_url, api.save_template_xlsx,api.save_template_zip,api.upload_file_to_java)
api.save_file_from_url, api.save_template_xlsx,api.save_template_zip,api.upload_file_to_java,api.enqueue_json)
webview.start(
debug=False,
debug=True,
storage_path=cache_path,
private_mode=False
)

View File

@@ -5,8 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>格式转换 - 数富AI</title>
<script type="module" crossorigin src="/assets/convert.js"></script>
<<<<<<< HEAD
<link rel="modulepreload" crossorigin href="/assets/pywebview-DdV1XQSM.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-D-LVYOFm.css">
=======
<link rel="modulepreload" crossorigin href="/assets/pywebview-Bl6M97uH.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-8G_9KMXd.css">
>>>>>>> 7176754564383bd42076af1e863a03e4582d64c7
<link rel="stylesheet" crossorigin href="/assets/convert-Cfr3mUjs.css">
</head>
<body>

View File

@@ -5,8 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>数据去重 - 数富AI</title>
<script type="module" crossorigin src="/assets/dedupe.js"></script>
<<<<<<< HEAD
<link rel="modulepreload" crossorigin href="/assets/pywebview-DdV1XQSM.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-D-LVYOFm.css">
=======
<link rel="modulepreload" crossorigin href="/assets/pywebview-Bl6M97uH.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-8G_9KMXd.css">
>>>>>>> 7176754564383bd42076af1e863a03e4582d64c7
<link rel="stylesheet" crossorigin href="/assets/dedupe-CS18ls2z.css">
</head>
<body>

View File

@@ -5,8 +5,13 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>数据拆分 - 数富AI</title>
<script type="module" crossorigin src="/assets/split.js"></script>
<<<<<<< HEAD
<link rel="modulepreload" crossorigin href="/assets/pywebview-DdV1XQSM.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-D-LVYOFm.css">
=======
<link rel="modulepreload" crossorigin href="/assets/pywebview-Bl6M97uH.js">
<link rel="stylesheet" crossorigin href="/assets/pywebview-8G_9KMXd.css">
>>>>>>> 7176754564383bd42076af1e863a03e4582d64c7
<link rel="stylesheet" crossorigin href="/assets/split-mwLUJT1K.css">
</head>
<body>