From f667c26650c4f079bedd16c0e977e057b27b3555 Mon Sep 17 00:00:00 2001 From: "LUOJIE\\coolp" Date: Fri, 18 Jul 2025 18:27:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=87=8D=E5=90=AF=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron_h5/.gitignore | 30 -- electron_h5/.vscode/extensions.json | 3 - electron_h5/README.md | 29 -- electron_h5/docker-compose.yml | 126 -------- electron_h5/index.html | 13 - electron_h5/jsconfig.json | 8 - electron_h5/nginx.conf | 276 ------------------ electron_h5/package.json | 20 -- electron_h5/public/favicon.ico | Bin 4286 -> 0 bytes electron_h5/src/App.vue | 216 -------------- electron_h5/src/MainApp.vue | 21 -- electron_h5/src/assets/base.css | 86 ------ electron_h5/src/assets/electron.svg | 10 - electron_h5/src/assets/logo.png | Bin 67928 -> 0 bytes electron_h5/src/assets/logo.svg | 1 - electron_h5/src/assets/longxiaoi_I.png | Bin 8063 -> 0 bytes electron_h5/src/assets/lxI_120.png | Bin 8222 -> 0 bytes electron_h5/src/assets/lxi_200.png | Bin 18061 -> 0 bytes electron_h5/src/assets/main.css | 35 --- electron_h5/src/assets/wavy-lines.svg | 25 -- electron_h5/src/components/ApiConfig.vue | 103 ------- electron_h5/src/components/HelloWorld.vue | 44 --- electron_h5/src/components/TheWelcome.vue | 94 ------ electron_h5/src/components/Versions.vue | 13 - electron_h5/src/components/WelcomeItem.vue | 87 ------ .../src/components/icons/IconCommunity.vue | 7 - .../components/icons/IconDocumentation.vue | 7 - .../src/components/icons/IconEcosystem.vue | 7 - .../src/components/icons/IconSupport.vue | 7 - .../src/components/icons/IconTooling.vue | 19 -- electron_h5/src/main.js | 7 - electron_h5/src/router/index.js | 23 -- electron_h5/vite.config.js | 22 -- src/main/index.js | 20 +- src/main/ipc.js | 46 +++ src/main/tray.js | 80 +++-- src/main/utils/networkUtils.js | 76 +++++ src/main/window.js | 27 +- src/renderer/index.html | 2 +- src/renderer/src/components/ApiConfig.vue | 6 +- src/renderer/src/components/network_error.vue | 130 +++++++++ src/renderer/src/router/index.js | 6 + 42 files changed, 362 insertions(+), 1370 deletions(-) delete mode 100644 electron_h5/.gitignore delete mode 100644 electron_h5/.vscode/extensions.json delete mode 100644 electron_h5/README.md delete mode 100644 electron_h5/docker-compose.yml delete mode 100644 electron_h5/index.html delete mode 100644 electron_h5/jsconfig.json delete mode 100644 electron_h5/nginx.conf delete mode 100644 electron_h5/package.json delete mode 100644 electron_h5/public/favicon.ico delete mode 100644 electron_h5/src/App.vue delete mode 100644 electron_h5/src/MainApp.vue delete mode 100644 electron_h5/src/assets/base.css delete mode 100644 electron_h5/src/assets/electron.svg delete mode 100644 electron_h5/src/assets/logo.png delete mode 100644 electron_h5/src/assets/logo.svg delete mode 100644 electron_h5/src/assets/longxiaoi_I.png delete mode 100644 electron_h5/src/assets/lxI_120.png delete mode 100644 electron_h5/src/assets/lxi_200.png delete mode 100644 electron_h5/src/assets/main.css delete mode 100644 electron_h5/src/assets/wavy-lines.svg delete mode 100644 electron_h5/src/components/ApiConfig.vue delete mode 100644 electron_h5/src/components/HelloWorld.vue delete mode 100644 electron_h5/src/components/TheWelcome.vue delete mode 100644 electron_h5/src/components/Versions.vue delete mode 100644 electron_h5/src/components/WelcomeItem.vue delete mode 100644 electron_h5/src/components/icons/IconCommunity.vue delete mode 100644 electron_h5/src/components/icons/IconDocumentation.vue delete mode 100644 electron_h5/src/components/icons/IconEcosystem.vue delete mode 100644 electron_h5/src/components/icons/IconSupport.vue delete mode 100644 electron_h5/src/components/icons/IconTooling.vue delete mode 100644 electron_h5/src/main.js delete mode 100644 electron_h5/src/router/index.js delete mode 100644 electron_h5/vite.config.js create mode 100644 src/main/utils/networkUtils.js create mode 100644 src/renderer/src/components/network_error.vue diff --git a/electron_h5/.gitignore b/electron_h5/.gitignore deleted file mode 100644 index 6d949a5..0000000 --- a/electron_h5/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -electron_h5 -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -*.tsbuildinfo diff --git a/electron_h5/.vscode/extensions.json b/electron_h5/.vscode/extensions.json deleted file mode 100644 index a7cea0b..0000000 --- a/electron_h5/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["Vue.volar"] -} diff --git a/electron_h5/README.md b/electron_h5/README.md deleted file mode 100644 index 14fa460..0000000 --- a/electron_h5/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# electron_h5 - -This template should help get you started developing with Vue 3 in Vite. - -## Recommended IDE Setup - -[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). - -## Customize configuration - -See [Vite Configuration Reference](https://vite.dev/config/). - -## Project Setup - -```sh -npm install -``` - -### Compile and Hot-Reload for Development - -```sh -npm run dev -``` - -### Compile and Minify for Production - -```sh -npm run build -``` diff --git a/electron_h5/docker-compose.yml b/electron_h5/docker-compose.yml deleted file mode 100644 index 2aeafb8..0000000 --- a/electron_h5/docker-compose.yml +++ /dev/null @@ -1,126 +0,0 @@ -version: '2' -services: - bqw-ai-system: - environment: - TZ: Asia/Shanghai - LANG: C.UTF-8 - LC_ALL: C.UTF-8 - DIFY_DB_HOST: 10.102.8.56 - DIFY_API_HOST: 10.102.8.56 - DIFY_API_PORT: 30080 - restart: always - container_name: bqw-ai-system - image: java:1.8.391 - volumes: - - ./system/target/bqw-ai.jar:/application/app.jar - - ./system/logs:/logs - - ./system/data:/application/data - command: java -jar -Dfile.encoding=UTF-8 /application/app.jar - logging: - driver: "json-file" - options: - max-size: "1024m" - max-file: "3" - depends_on: - - bqw-ai-mysql - - bqw-ai-redis - bqw-ai-magic: - environment: - TZ: Asia/Shanghai - LANG: C.UTF-8 - LC_ALL: C.UTF-8 - restart: always - container_name: bqw-ai-magic - image: java:1.8.391 - depends_on: - - bqw-ai-mysql - - bqw-ai-redis - volumes: - - ./system/target/magic-api-demo.jar:/application/app.jar - - ./system/logs:/logs - - ./system/data:/application/data - command: java -jar -Dfile.encoding=UTF-8 /application/app.jar - logging: - driver: "json-file" - options: - max-size: "1024m" - max-file: "3" - bqw-ai-mysql: - environment: - MYSQL_ROOT_PASSWORD: Mars@23600800 - MYSQL_ROOT_HOST: '%' - MYSQL_DATABASE: ai-application - TZ: Asia/Shanghai - restart: always - privileged: true - container_name: bqw-ai-mysql - image: mysql:8.0.33 - command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true - --lower_case_table_names=1 - --max_allowed_packet=128M - --default-authentication-plugin=caching_sha2_password - volumes: - - ./mysql/data/:/var/lib/mysql/ - - ./mysql/sql:/docker-entrypoint-initdb.d - bqw-ai-redis: - image: redis:7.0.4 - environment: - TZ: Asia/Shanghai - restart: always - container_name: bqw-ai-redis - volumes: - - ./redis/conf:/redis/config:rw - - ./redis/data/:/redis/data/:rw - command: "redis-server /redis/config/redis.conf" - privileged: true - bqw-ai-web: - image: nginx:1.23.4 - ports: - - 18900:80 - - 18901:8080 - - 18902:8081 - restart: always - environment: - TZ: Asia/Shanghai - LANG: C.UTF-8 - LC_ALL: C.UTF-8 - container_name: bqw-ai-web - volumes: - - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf - - ./nginx/html/dist:/usr/share/nginx/html - - ./nginx/html/chat:/usr/share/nginx/chat - - ./nginx/html/llm_flow:/usr/share/nginx/llm_flow - - ./nginx/html/electron_h5:/usr/share/nginx/electron_h5 - depends_on: - - bqw-ai-system - logging: - driver: "json-file" - options: - max-size: "1024m" - max-file: "3" - bqw-ai-minio: - image: minio/minio - privileged: true - restart: always - container_name: bqw-ai-minio - # ports: - # # api端口 - # - 9000:9000 - # # 控制台页面端口 - # - 9011:9011 - environment: - TZ: Asia/Shanghai - MINIO_ACCESS_KEY: admin - MINIO_SECRET_KEY: Huashiai@2024 - volumes: - - ./minio/data:/data - - /etc/localtime:/etc/localtime:ro - command: server /data --console-address ":9011" - logging: - driver: "json-file" - options: - max-size: "1024m" - max-file: "3" diff --git a/electron_h5/index.html b/electron_h5/index.html deleted file mode 100644 index c1f99ce..0000000 --- a/electron_h5/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - 龙岗区百千万AI智能体共创平台 - - -
- - - diff --git a/electron_h5/jsconfig.json b/electron_h5/jsconfig.json deleted file mode 100644 index 5a1f2d2..0000000 --- a/electron_h5/jsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "paths": { - "@/*": ["./src/*"] - } - }, - "exclude": ["node_modules", "dist"] -} diff --git a/electron_h5/nginx.conf b/electron_h5/nginx.conf deleted file mode 100644 index 0d21b83..0000000 --- a/electron_h5/nginx.conf +++ /dev/null @@ -1,276 +0,0 @@ -user root; -worker_processes auto; - -error_log /var/log/nginx/error.log notice; -pid /var/run/nginx.pid; - - -events { - worker_connections 1024; -} - - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - #tcp_nopush on; - keepalive_timeout 65; - #gzip on; - gzip on; - gzip_min_length 1k; - gzip_comp_level 9; - gzip_types text/plain application/x-javascript text/javascript application/x-httpd-php text/css text/xml text/jsp application/eot application/ttf application/otf application/svg application/woff application/javascript application/xml image/jpeg image/gif image/png; - gzip_vary on; - gzip_disable "MSIE [1-6]."; - # 除去 Web 站点中的信用卡号 - sub_filter '(\d{4}[- ]?){3}\d{4}' '**** **** **** ****'; - sub_filter_once off; - - # 全局设置允许的最大请求体大小 - client_max_body_size 2048m; - - server { - listen 80; - server_name localhost; - location ^~/bqw-ai { - proxy_pass http://bqw-ai-system:8080/bqw-ai; - proxy_set_header Host 127.0.0.1; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - # 允许跨域请求 - add_header Access-Control-Allow-Origin *; - # 允许带身份验证信息的跨域请求 - add_header Access-Control-Allow-Credentials true; - # 允许的请求方法 - add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; - # 允许的请求头 - add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; - # 预检请求的有效期 - add_header Access-Control-Max-Age 3600; - # 处理 OPTIONS 请求 - if ($request_method = 'OPTIONS') { - add_header Content-Type 'text/plain; charset=utf-8'; - add_header Content-Length 0; - return 204; - } - } - - location /bqw-ai/websocket { - proxy_pass http://bqw-ai-system:8080/bqw-ai/websocket; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_read_timeout 900s; - } - - location / { - root /usr/share/nginx/html/; - index index.html index.htm; - if (!-e $request_filename) { - rewrite ^(.*)$ /index.html?s=$1last; - break; - } - } - - location /h5_client { - alias /usr/share/nginx/llm_flow/; - index index.html index.htm; - } - - location /electron_h5 { - alias /usr/share/nginx/electron_h5/; - index index.html index.htm; - } - - # http://10.180.6.206 - # https://xtbg.lg.gov.cn/LGOA - - - location /LGOA { - proxy_pass https://xtbg.lg.gov.cn/LGOA; - } - location /OAZS { - proxy_pass http://10.180.6.206/OAZS; - } - - - location /magic { - proxy_pass http://bqw-ai-magic:9999/magic; - } - - - - - - location /magic/web/console { - proxy_pass http://bqw-ai-magic:9999/magic/web/console; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_read_timeout 900s; - } - - - # minio-api - location /minio-api/ { - proxy_pass http://bqw-ai-minio:9000/; - } - - #minio页面 - location /minio/login { - proxy_pass http://bqw-ai-minio:9011; - # 启用支持websocket连接 - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - client_max_body_size 1024m; - proxy_http_version 1.1; - proxy_connect_timeout 3600; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - - location /bqw-ai/sys/common/static/bqw-ai-file/ { - proxy_pass http://bqw-ai-minio:9000/bqw-ai-file/; - - # 可选:添加一些常用的代理设置 - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - # 如果需要处理大文件上传或下载,可以调整超时时间 - proxy_connect_timeout 600; - proxy_send_timeout 600; - proxy_read_timeout 600; - } - - - location /h5_client/bqw-ai-file/ { - proxy_pass http://bqw-ai-minio:9000/bqw-ai-file/; - - # 可选:添加一些常用的代理设置 - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - # 如果需要处理大文件上传或下载,可以调整超时时间 - proxy_connect_timeout 600; - proxy_send_timeout 600; - proxy_read_timeout 600; - } - - - - location /bqw-video/ { - proxy_pass http://10.102.8.55:8090/; - - # 可选:添加一些常用的代理设置 - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - # 如果需要处理大文件上传或下载,可以调整超时时间 - proxy_connect_timeout 600; - proxy_send_timeout 600; - proxy_read_timeout 600; - } - - - location /bqw-ai-file/ { - proxy_pass http://bqw-ai-minio:9000/bqw-ai-file/; - - # 可选:添加一些常用的代理设置 - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - # 如果需要处理大文件上传或下载,可以调整超时时间 - proxy_connect_timeout 600; - proxy_send_timeout 600; - proxy_read_timeout 600; - } - - - - - - - - - - - } - server { - - listen 8081; - server_name localhost; - - client_max_body_size 2000M; - - # minio-api - location / { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Host $http_host; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://bqw-ai-minio:9000/; - } - - - } - - server { - listen 8080; - server_name localhost; - - - - # minio-api - location /minio-api/ { - proxy_pass http://bqw-ai-minio:9000/; - } - - #minio页面 - location / { - proxy_pass http://bqw-ai-minio:9011; - # 启用支持websocket连接 - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - client_max_body_size 1024m; - proxy_http_version 1.1; - proxy_connect_timeout 3600; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - - include /etc/nginx/conf.d/*.conf; -} diff --git a/electron_h5/package.json b/electron_h5/package.json deleted file mode 100644 index 688edb8..0000000 --- a/electron_h5/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "electron_h5", - "version": "0.0.0", - "private": true, - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "vue": "^3.5.13", - "vue-router": "^4.5.0" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.2.3", - "vite": "^6.2.4", - "vite-plugin-vue-devtools": "^7.7.2" - } -} diff --git a/electron_h5/public/favicon.ico b/electron_h5/public/favicon.ico deleted file mode 100644 index df36fcfb72584e00488330b560ebcf34a41c64c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/electron_h5/src/App.vue b/electron_h5/src/App.vue deleted file mode 100644 index cb98d72..0000000 --- a/electron_h5/src/App.vue +++ /dev/null @@ -1,216 +0,0 @@ - - - - - diff --git a/electron_h5/src/MainApp.vue b/electron_h5/src/MainApp.vue deleted file mode 100644 index 018e70d..0000000 --- a/electron_h5/src/MainApp.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - - diff --git a/electron_h5/src/assets/base.css b/electron_h5/src/assets/base.css deleted file mode 100644 index 8816868..0000000 --- a/electron_h5/src/assets/base.css +++ /dev/null @@ -1,86 +0,0 @@ -/* color palette from */ -:root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; - - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; - - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); - - --section-gap: 160px; -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} - -*, -*::before, -*::after { - box-sizing: border-box; - margin: 0; - font-weight: normal; -} - -body { - min-height: 100vh; - color: var(--color-text); - background: var(--color-background); - transition: - color 0.5s, - background-color 0.5s; - line-height: 1.6; - font-family: - Inter, - -apple-system, - BlinkMacSystemFont, - 'Segoe UI', - Roboto, - Oxygen, - Ubuntu, - Cantarell, - 'Fira Sans', - 'Droid Sans', - 'Helvetica Neue', - sans-serif; - font-size: 15px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} diff --git a/electron_h5/src/assets/electron.svg b/electron_h5/src/assets/electron.svg deleted file mode 100644 index 45ef09c..0000000 --- a/electron_h5/src/assets/electron.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/electron_h5/src/assets/logo.png b/electron_h5/src/assets/logo.png deleted file mode 100644 index ef4039175ab8841e70d734b82e36aa4ad754de83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67928 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 diff --git a/electron_h5/src/assets/logo.svg b/electron_h5/src/assets/logo.svg deleted file mode 100644 index 7565660..0000000 --- a/electron_h5/src/assets/logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/electron_h5/src/assets/longxiaoi_I.png b/electron_h5/src/assets/longxiaoi_I.png deleted file mode 100644 index 5e3986971c37811a451980097d35d00af626557e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8063 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 N002ovPDHLkV1oMg!vg>S diff --git a/electron_h5/src/assets/lxI_120.png b/electron_h5/src/assets/lxI_120.png deleted file mode 100644 index 050cbcfe8e2a0d73b7bc4bb402d628abb159b830..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8222 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 bS9eUVI4f_O!=&ahyLO?F7zYO8(#?MWfrAPh diff --git a/electron_h5/src/assets/main.css b/electron_h5/src/assets/main.css deleted file mode 100644 index 36fb845..0000000 --- a/electron_h5/src/assets/main.css +++ /dev/null @@ -1,35 +0,0 @@ -@import './base.css'; - -#app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - font-weight: normal; -} - -a, -.green { - text-decoration: none; - color: hsla(160, 100%, 37%, 1); - transition: 0.4s; - padding: 3px; -} - -@media (hover: hover) { - a:hover { - background-color: hsla(160, 100%, 37%, 0.2); - } -} - -@media (min-width: 1024px) { - body { - display: flex; - place-items: center; - } - - #app { - display: grid; - grid-template-columns: 1fr 1fr; - padding: 0 2rem; - } -} diff --git a/electron_h5/src/assets/wavy-lines.svg b/electron_h5/src/assets/wavy-lines.svg deleted file mode 100644 index d08c611..0000000 --- a/electron_h5/src/assets/wavy-lines.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/electron_h5/src/components/ApiConfig.vue b/electron_h5/src/components/ApiConfig.vue deleted file mode 100644 index a26128b..0000000 --- a/electron_h5/src/components/ApiConfig.vue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - diff --git a/electron_h5/src/components/HelloWorld.vue b/electron_h5/src/components/HelloWorld.vue deleted file mode 100644 index eff59f1..0000000 --- a/electron_h5/src/components/HelloWorld.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - - diff --git a/electron_h5/src/components/TheWelcome.vue b/electron_h5/src/components/TheWelcome.vue deleted file mode 100644 index fe48afc..0000000 --- a/electron_h5/src/components/TheWelcome.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - diff --git a/electron_h5/src/components/Versions.vue b/electron_h5/src/components/Versions.vue deleted file mode 100644 index 35136c0..0000000 --- a/electron_h5/src/components/Versions.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/electron_h5/src/components/WelcomeItem.vue b/electron_h5/src/components/WelcomeItem.vue deleted file mode 100644 index 6d7086a..0000000 --- a/electron_h5/src/components/WelcomeItem.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/electron_h5/src/components/icons/IconCommunity.vue b/electron_h5/src/components/icons/IconCommunity.vue deleted file mode 100644 index 2dc8b05..0000000 --- a/electron_h5/src/components/icons/IconCommunity.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/electron_h5/src/components/icons/IconDocumentation.vue b/electron_h5/src/components/icons/IconDocumentation.vue deleted file mode 100644 index 6d4791c..0000000 --- a/electron_h5/src/components/icons/IconDocumentation.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/electron_h5/src/components/icons/IconEcosystem.vue b/electron_h5/src/components/icons/IconEcosystem.vue deleted file mode 100644 index c3a4f07..0000000 --- a/electron_h5/src/components/icons/IconEcosystem.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/electron_h5/src/components/icons/IconSupport.vue b/electron_h5/src/components/icons/IconSupport.vue deleted file mode 100644 index 7452834..0000000 --- a/electron_h5/src/components/icons/IconSupport.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/electron_h5/src/components/icons/IconTooling.vue b/electron_h5/src/components/icons/IconTooling.vue deleted file mode 100644 index 660598d..0000000 --- a/electron_h5/src/components/icons/IconTooling.vue +++ /dev/null @@ -1,19 +0,0 @@ - - diff --git a/electron_h5/src/main.js b/electron_h5/src/main.js deleted file mode 100644 index 8a2e5d2..0000000 --- a/electron_h5/src/main.js +++ /dev/null @@ -1,7 +0,0 @@ -import { createApp } from 'vue' -import router from './router' -import MainApp from './MainApp.vue' - -const app = createApp(MainApp) -app.use(router) -app.mount('#app') diff --git a/electron_h5/src/router/index.js b/electron_h5/src/router/index.js deleted file mode 100644 index fd16382..0000000 --- a/electron_h5/src/router/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import { createRouter, createWebHashHistory } from 'vue-router' -import App from '../App.vue' -import ApiConfig from '../components/ApiConfig.vue' - -const routes = [ - { - path: '/', - name: 'home', - component: App - }, - { - path: '/config', - name: 'config', - component: ApiConfig - } -] - -const router = createRouter({ - history: createWebHashHistory(), - routes -}) - -export default router \ No newline at end of file diff --git a/electron_h5/vite.config.js b/electron_h5/vite.config.js deleted file mode 100644 index bbcac17..0000000 --- a/electron_h5/vite.config.js +++ /dev/null @@ -1,22 +0,0 @@ -import { fileURLToPath, URL } from 'node:url' - -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import vueDevTools from 'vite-plugin-vue-devtools' - -// https://vite.dev/config/ -export default defineConfig({ - base: "/electron_h5", - plugins: [ - vue(), - vueDevTools(), - ], - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)) - }, - }, - build: { - outDir: 'electron_h5', // 指定输出目录为 electron_h5 - } -}) diff --git a/src/main/index.js b/src/main/index.js index 5db5b5e..c67e91f 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,7 +1,7 @@ import { app, shell, BrowserWindow, ipcMain, Menu, session, screen, dialog } from 'electron' import { electronApp, optimizer } from '@electron-toolkit/utils' import Store from 'electron-store' -import { createWindow, createDrageWindow, unregisterAllShortcuts } from './window.js' +import { createWindow, createDrageWindow, unregisterAllShortcuts, getMainWindow } from './window.js' import { setupIPC } from './ipc.js' import { createTray, destroyTray,clearBrowserCache } from './tray.js' import XEUtils from 'xe-utils' @@ -13,6 +13,7 @@ import { clearAllSessionData } from './utils/cacheUtils.js' import SingleInstanceManager from './utils/singleInstance.js' import { setStoreValue, getStoreValue ,deleteStore} from './store.js' import AutoLaunch from 'auto-launch' +import axios from 'axios' import WebSocketClient from './utils/WebSocketClient'; @@ -273,6 +274,12 @@ if (!isFirstInstance) { app.on('window-all-closed', async (event) => { if (process.platform !== 'darwin') { event.preventDefault(); + // 如果是重启过程,不执行任何清理操作 + if (app.isRestarting) { + logger.info('检测到重启过程,跳过窗口关闭处理') + return; + } + if (!app.isQuiting) { // 如果不是主动退出,则隐藏所有窗口 @@ -300,6 +307,12 @@ if (!isFirstInstance) { }) app.on('before-quit', async (event) => { + // 如果是重启过程,不执行任何清理操作 + if (app.isRestarting) { + logger.info('检测到重启过程,跳过before-quit处理') + return; + } + // 在应用程序即将退出时执行操作,例如保存数据 event.preventDefault(); @@ -317,6 +330,11 @@ if (!isFirstInstance) { // 在应用退出时注销所有快捷键 app.on('will-quit', async (event) => { + // 如果是重启过程,不执行任何清理操作 + if (app.isRestarting) { + logger.info('检测到重启过程,跳过will-quit处理') + return; + } event.preventDefault(); diff --git a/src/main/ipc.js b/src/main/ipc.js index 0e69d0f..6e64c5d 100644 --- a/src/main/ipc.js +++ b/src/main/ipc.js @@ -334,4 +334,50 @@ export function setupIPC() { throw error; } }); + + // 重启软件 + ipcMain.handle('restartApp', async (event) => { + logger.info("=============================重启软件"); + try { + // 标记为正在重启,避免其他退出逻辑干扰 + app.isRestarting = true; + + // 确保所有窗口都被正确关闭 + const windows = BrowserWindow.getAllWindows(); + logger.info(`准备关闭 ${windows.length} 个窗口`); + + windows.forEach(window => { + if (!window.isDestroyed()) { + try { + window.close(); + logger.info('窗口关闭成功'); + } catch (error) { + logger.warn('关闭窗口时出错:', error); + } + } + }); + + // 延迟执行重启,确保窗口关闭完成 + setTimeout(() => { + try { + logger.info('执行应用重启'); + app.relaunch(); + app.exit(0); + } catch (error) { + logger.error('重启应用失败,尝试强制退出:', error); + try { + app.quit(); + } catch (quitError) { + logger.error('强制退出也失败:', quitError); + process.exit(0); + } + } + }, 1000); + + return { success: true }; + } catch (error) { + logger.error(`重启软件失败: ${error.message}`); + throw error; + } + }); } diff --git a/src/main/tray.js b/src/main/tray.js index 832d788..97ce3b1 100644 --- a/src/main/tray.js +++ b/src/main/tray.js @@ -13,6 +13,62 @@ let tray = null import {checkForUpdates} from "./utils/updateUtils" +// 安全重启应用函数 +function safeRestartApp() { + return new Promise((resolve) => { + try { + logger.info('开始安全重启应用') + + // 标记为正在重启,避免其他退出逻辑干扰 + app.isRestarting = true + + // 确保所有窗口都被正确关闭 + const windows = BrowserWindow.getAllWindows() + logger.info(`准备关闭 ${windows.length} 个窗口`) + + windows.forEach(window => { + if (!window.isDestroyed()) { + try { + window.close() + logger.info('窗口关闭成功') + } catch (error) { + logger.warn('关闭窗口时出错:', error) + } + } + }) + + // 延迟执行重启,确保窗口关闭完成 + setTimeout(() => { + try { + logger.info('执行应用重启') + app.relaunch() + app.exit(0) + resolve(true) + } catch (error) { + logger.error('重启应用失败,尝试强制退出:', error) + try { + app.quit() + } catch (quitError) { + logger.error('强制退出也失败:', quitError) + process.exit(0) + } + resolve(false) + } + }, 1000) // 增加延迟时间到1秒 + + } catch (error) { + logger.error('安全重启失败:', error) + try { + app.quit() + } catch (quitError) { + logger.error('强制退出失败:', quitError) + process.exit(0) + } + resolve(false) + } + }) +} + export async function clearBrowserCache() { try { // 使用统一的缓存清理函数 @@ -100,31 +156,7 @@ export function createTray() { } }, - { type: 'separator' }, - { - label: '清除缓存', - click: async () => { - await clearBrowserCache() - // 删除配置文件 - try { - const userDataPath = app.getPath('userData') - const configPath = join(userDataPath, 'config.json') - if (fs.existsSync(configPath)) { - fs.unlinkSync(configPath) - logger.info('配置文件删除成功') - } - } catch (error) { - logger.error('删除配置文件失败:', error) - } - - // 重新加载所有窗口 - const windows = BrowserWindow.getAllWindows() - for (const window of windows) { - window.reload() - } - } - }, { type: 'separator' }, { label: '退出登录', diff --git a/src/main/utils/networkUtils.js b/src/main/utils/networkUtils.js new file mode 100644 index 0000000..65af51b --- /dev/null +++ b/src/main/utils/networkUtils.js @@ -0,0 +1,76 @@ +import axios from 'axios'; +import logger from './logger'; +import { getStoreValue } from '../store.js'; + +/** + * 检测网络连接是否正常 + * @param {string} url - 要检测的URL,如果不提供则使用默认的客户端地址 + * @param {number} timeout - 超时时间,默认5秒 + * @returns {Promise} - 返回网络连接状态 + */ +export async function checkNetworkConnection(url = null, timeout = 5000) { + try { + // 如果没有提供URL,则使用存储的客户端地址 + if (!url) { + const h5ClientUrl = getStoreValue("h5_client_url"); + if (!h5ClientUrl) { + logger.warn('网络检测:未找到客户端地址配置'); + return false; + } + url = h5ClientUrl; + } + + logger.info(`网络检测:开始检测 ${url} 的连接状态`); + + // 发送HEAD请求检测网络连接 + const response = await axios.head(url, { + timeout: timeout, + validateStatus: function (status) { + // 接受2xx和3xx的状态码 + return status >= 200 && status < 400; + } + }); + + logger.info(`网络检测:连接成功,状态码 ${response.status}`); + return true; + + } catch (error) { + logger.warn(`网络检测:连接失败 - ${error.message}`); + + // 如果是超时错误,记录更详细的信息 + if (error.code === 'ECONNABORTED') { + logger.warn(`网络检测:请求超时 (${timeout}ms)`); + } else if (error.code === 'ENOTFOUND') { + logger.warn('网络检测:无法解析主机名'); + } else if (error.code === 'ECONNREFUSED') { + logger.warn('网络检测:连接被拒绝'); + } + + return false; + } +} + +/** + * 检测多个URL的网络连接 + * @param {Array} urls - 要检测的URL数组 + * @param {number} timeout - 超时时间,默认5秒 + * @returns {Promise} - 返回每个URL的检测结果 + */ +export async function checkMultipleNetworkConnections(urls, timeout = 5000) { + const results = {}; + + for (const url of urls) { + results[url] = await checkNetworkConnection(url, timeout); + } + + return results; +} + +/** + * 检测默认客户端地址的网络连接 + * @param {number} timeout - 超时时间,默认5秒 + * @returns {Promise} - 返回网络连接状态 + */ +export async function checkDefaultClientConnection(timeout = 5000) { + return await checkNetworkConnection(null, timeout); +} \ No newline at end of file diff --git a/src/main/window.js b/src/main/window.js index 02d6858..0e23a99 100644 --- a/src/main/window.js +++ b/src/main/window.js @@ -5,6 +5,7 @@ import icon from '../../resources/icon.png?asset' import { isApiDatasetsDocumentsPath, extractIdFromPath } from './utils/difyUtils.js' import XEUtils from 'xe-utils' import logger from './utils/logger' +import { checkDefaultClientConnection } from './utils/networkUtils.js' import { createMenu } from './menu.js' import { setStoreValue, getStoreValue,deleteStore } from './store.js' @@ -166,16 +167,38 @@ export async function createWindow() { // 加载存储的 URL mainWindow.loadURL(h5_client_url) + // 监听页面加载失败事件 + mainWindow.webContents.on('did-fail-load', (event, errorCode, errorDescription, validatedURL) => { + logger.error(`主窗口页面加载失败: code=${errorCode}, desc=${errorDescription}, url=${validatedURL}`) + // 跳转到网络错误页面 + + if (is.dev && process.env['ELECTRON_RENDERER_URL']) { + mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'] + '/#/network_error') + } else { + mainWindow.loadFile(join(__dirname, '../renderer/index.html'), { hash: '/network_error' }) + } + + + }) + // 接口超过30分钟不活动,则退出登录 await tokenExpireTimer() - setTimeout(()=>{ + setTimeout(async ()=>{ try { // 注册全局快捷键 registerShortcuts(mainWindow) - checkForUpdates({},false) + + // 先检测网络连接,如果网络正常再调用版本检测升级 + const isNetworkConnected = await checkDefaultClientConnection(5000); + if (isNetworkConnected) { + logger.info('网络连接正常,开始检查版本更新'); + checkForUpdates({},false) + } else { + logger.warn('网络连接异常,跳过版本检测升级'); + } }catch (e) { logger.info(e) } diff --git a/src/renderer/index.html b/src/renderer/index.html index 0898743..ae40dfd 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -2,7 +2,7 @@ - Dify Market Manager + 百千万AI { const saveConfig = async () => { try { await window.electron.ipcRenderer.invoke('setStoreValue', 'h5_client_url', h5ClientUrl.value) - alert('保存成功') - // 关闭当前窗口 - window.electron.ipcRenderer.send('closeConfigWindow') + + // 重启应用 + await window.electron.ipcRenderer.invoke('restartApp') } catch (error) { alert('保存失败:' + error.message) } diff --git a/src/renderer/src/components/network_error.vue b/src/renderer/src/components/network_error.vue new file mode 100644 index 0000000..631effe --- /dev/null +++ b/src/renderer/src/components/network_error.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/renderer/src/router/index.js b/src/renderer/src/router/index.js index fd16382..c4ed6fb 100644 --- a/src/renderer/src/router/index.js +++ b/src/renderer/src/router/index.js @@ -1,6 +1,7 @@ import { createRouter, createWebHashHistory } from 'vue-router' import App from '../App.vue' import ApiConfig from '../components/ApiConfig.vue' +import NetworkError from '../components/network_error.vue' const routes = [ { @@ -12,6 +13,11 @@ const routes = [ path: '/config', name: 'config', component: ApiConfig + }, + { + path: '/network_error', + name: 'network_error', + component: NetworkError } ]