diff --git a/PHP服务连接问题解决方案.md b/PHP服务连接问题解决方案.md deleted file mode 100644 index fb82aff..0000000 --- a/PHP服务连接问题解决方案.md +++ /dev/null @@ -1,199 +0,0 @@ -# PHP 服务连接问题解决方案 - -## 问题描述 -Python 后端无法连接到 PHP 服务,报错: -``` -HTTPConnectionPool(host='192.168.1.164', port=30100): Read timed out -``` - -## 已完成的修复 - -### 1. 配置修正 -- ✅ 修改 `lover/deps.py`:移除硬编码 IP,从配置读取 -- ✅ 修改 `lover/config.py`:默认地址改为 `127.0.0.1:30100` -- ✅ 修改 `.env`:端口从 `8080` 改为 `30100` -- ✅ 减少超时时间:从 5 秒改为 3 秒 -- ✅ 改进错误处理:区分超时和连接错误 - -### 2. 启动脚本优化 -- ✅ 使用 `router.php` 而不是 `-t .` -- ✅ 添加端口清理逻辑,自动终止占用端口的旧进程 -- ✅ 添加等待时间,确保服务完全启动 - -### 3. 测试工具 -创建了 `xunifriend_RaeeC/public/test_api.php` 用于测试: -- `/test_api.php` - 测试 PHP 服务器基本响应 -- `/test_db` - 测试数据库连接 - -## 当前问题分析 - -### PHP 服务器状态 -``` -端口 30100 已被监听(进程 31592, 16636) -但是请求超时,无法获得响应 -``` - -### 可能的原因 - -1. **数据库连接问题** - - PHP 应用可能在启动时尝试连接数据库 - - 如果数据库连接失败或慢,会导致请求超时 - - 检查 `xunifriend_RaeeC/application/database.php` 配置 - -2. **PHP 内置服务器限制** - - PHP 内置服务器是单线程的 - - 如果有请求阻塞,后续请求会超时 - - 建议使用 Apache 或 Nginx + PHP-FPM - -3. **应用初始化问题** - - ThinkPHP 框架初始化可能有问题 - - 检查 `xunifriend_RaeeC/application/admin/command/Install/install.lock` 是否存在 - -4. **路由配置问题** - - API 路由可能未正确配置 - - 检查 `xunifriend_RaeeC/application/route.php` - -## 解决步骤 - -### 步骤 1: 测试 PHP 服务器基本功能 -```cmd -# 在浏览器或命令行测试 -curl http://127.0.0.1:30100/test_api.php -``` - -预期响应: -```json -{ - "code": 1, - "msg": "PHP 服务器运行正常", - "time": 1738665600, - "data": { - "php_version": "8.0.0", - "server_time": "2026-02-04 19:00:00" - } -} -``` - -### 步骤 2: 测试数据库连接 -```cmd -curl http://127.0.0.1:30100/test_db -``` - -如果数据库连接失败,检查: -- MySQL 是否运行 -- `xunifriend_RaeeC/application/database.php` 配置是否正确 -- 数据库用户名密码是否正确 - -### 步骤 3: 测试实际 API -```cmd -# 使用有效的 token 测试 -curl -H "token: YOUR_TOKEN_HERE" http://127.0.0.1:30100/api/user_basic/get_user_basic -``` - -### 步骤 4: 检查 PHP 错误日志 -PHP 内置服务器的错误会显示在启动窗口中,查看是否有: -- 数据库连接错误 -- 文件权限错误 -- PHP 语法错误 -- 缺少扩展 - -## 临时解决方案 - -### 方案 1: 使用开发环境兜底(已实现) -Python 后端在开发环境下,如果 PHP 连接失败,会自动使用测试用户: -```python -# 在 lover/deps.py 中 -if settings.APP_ENV == "development" and settings.DEBUG: - logger.warning(f"开发环境:token 验证失败({e.detail}),使用测试用户") - return AuthedUser(id=70, reg_step=2, gender=0, nickname="test-user", token="") -``` - -### 方案 2: 直接使用数据库认证 -修改 Python 后端,不依赖 PHP API,直接查询数据库: -```python -# 在 lover/deps.py 中添加 -def _fetch_user_from_db(token: str) -> Optional[dict]: - """直接从数据库获取用户信息""" - from lover.db import get_db - db = next(get_db()) - user = db.execute( - "SELECT * FROM fa_user WHERE token = :token", - {"token": token} - ).fetchone() - return dict(user) if user else None -``` - -### 方案 3: 重启 PHP 服务 -```cmd -# 使用更新后的启动脚本,会自动清理旧进程 -启动项目.bat -``` - -## 长期解决方案 - -### 推荐:使用 Nginx + PHP-FPM -PHP 内置服务器不适合生产环境,建议: - -1. 安装 Nginx -2. 配置 PHP-FPM -3. 配置 Nginx 反向代理 - -配置示例: -```nginx -server { - listen 30100; - server_name localhost; - root C:/Users/Administrator/Desktop/Project/AI_GirlFriend/xunifriend_RaeeC/public; - index index.php index.html; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } - - location ~ \.php$ { - fastcgi_pass 127.0.0.1:9000; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } -} -``` - -## 调试命令 - -### 查看端口占用 -```cmd -netstat -ano | findstr :30100 -``` - -### 终止进程 -```cmd -taskkill /F /PID <进程ID> -``` - -### 测试 PHP 配置 -```cmd -D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe -v -D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe -m # 查看已安装的扩展 -``` - -### 手动启动 PHP 服务器(用于调试) -```cmd -cd xunifriend_RaeeC\public -D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe -S 0.0.0.0:30100 router.php -``` - -## 下一步行动 - -1. **立即测试**:运行 `curl http://127.0.0.1:30100/test_api.php` -2. **检查数据库**:确认 MySQL 正在运行 -3. **查看日志**:检查 PHP 启动窗口的错误信息 -4. **重启服务**:使用更新后的 `启动项目.bat` - -## 文件修改记录 - -- `lover/deps.py` - 改进错误处理和超时设置 -- `lover/config.py` - 修正默认地址 -- `.env` - 修正端口配置 -- `启动项目.bat` - 添加端口清理和 router.php -- `xunifriend_RaeeC/public/test_api.php` - 新增测试脚本 diff --git a/python -m uvicorn lover.main;app --host 0.0.0.0 --port 8000 --reload b/python -m uvicorn lover.main;app --host 0.0.0.0 --port 8000 --reload deleted file mode 100644 index e69de29..0000000 diff --git a/start_php_advanced.bat b/start_php_advanced.bat deleted file mode 100644 index 855be97..0000000 --- a/start_php_advanced.bat +++ /dev/null @@ -1,161 +0,0 @@ -@echo off -chcp 65001 >nul -title PHP 开发服务器 - -:MENU -cls -echo ======================================== -echo PHP 开发服务器启动脚本 (高级版) -echo ======================================== -echo. -echo 请选择启动模式: -echo. -echo [1] 快速启动 (端口 8080) -echo [2] 自定义端口 -echo [3] 查看 PHP 信息 -echo [4] 退出 -echo. -echo ======================================== -set /p choice=请输入选项 (1-4): - -if "%choice%"=="1" goto QUICK_START -if "%choice%"=="2" goto CUSTOM_PORT -if "%choice%"=="3" goto PHP_INFO -if "%choice%"=="4" goto END -echo [错误] 无效选项,请重新选择 -timeout /t 2 >nul -goto MENU - -:QUICK_START -set PORT=8080 -goto START_SERVER - -:CUSTOM_PORT -echo. -set /p PORT=请输入端口号 (例如: 8080): -if "%PORT%"=="" ( - echo [错误] 端口号不能为空 - timeout /t 2 >nul - goto MENU -) -goto START_SERVER - -:START_SERVER -cls -echo ======================================== -echo 正在启动 PHP 开发服务器... -echo ======================================== -echo. - -REM 设置 PHP 路径 -set PHP_PATH=D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe - -REM 检查 PHP 是否存在 -if not exist "%PHP_PATH%" ( - echo [错误] PHP 未找到: %PHP_PATH% - echo. - echo 请修改脚本中的 PHP_PATH 变量 - pause - goto MENU -) - -REM 显示 PHP 版本 -echo [信息] PHP 版本: -"%PHP_PATH%" -v | findstr /C:"PHP" -echo. - -REM 设置项目根目录 -set PROJECT_ROOT=%~dp0xunifriend_RaeeC\public - -REM 检查项目目录是否存在 -if not exist "%PROJECT_ROOT%" ( - echo [错误] 项目目录未找到: %PROJECT_ROOT% - pause - goto MENU -) - -REM 获取本机 IP 地址 -for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /C:"IPv4"') do ( - set LOCAL_IP=%%a - goto :IP_FOUND -) -:IP_FOUND -set LOCAL_IP=%LOCAL_IP: =% - -REM 设置服务器参数 -set HOST=0.0.0.0 - -echo [信息] 项目目录: %PROJECT_ROOT% -echo [信息] 服务器端口: %PORT% -echo. -echo ======================================== -echo 访问地址: -echo ======================================== -echo. -echo [本地访问] -echo http://127.0.0.1:%PORT% -echo http://localhost:%PORT% -echo. -echo [局域网访问] -echo http://%LOCAL_IP%:%PORT% -echo. -echo [管理后台] -echo http://127.0.0.1:%PORT%/admin -echo. -echo ======================================== -echo. -echo [提示] 按 Ctrl+C 停止服务器 -echo. - -REM 询问是否打开浏览器 -set /p OPEN_BROWSER=是否自动打开浏览器? (Y/N): -if /i "%OPEN_BROWSER%"=="Y" ( - echo [信息] 正在打开浏览器... - start http://127.0.0.1:%PORT% -) - -echo. -echo [信息] 服务器启动中... -echo ======================================== -echo. - -REM 启动 PHP 内置服务器 -cd /d "%PROJECT_ROOT%" -"%PHP_PATH%" -S %HOST%:%PORT% -t . - -pause -goto MENU - -:PHP_INFO -cls -echo ======================================== -echo PHP 信息 -echo ======================================== -echo. - -set PHP_PATH=D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe - -if not exist "%PHP_PATH%" ( - echo [错误] PHP 未找到: %PHP_PATH% - pause - goto MENU -) - -echo [PHP 版本] -"%PHP_PATH%" -v -echo. -echo [PHP 配置文件] -"%PHP_PATH%" --ini -echo. -echo [已加载的扩展] -"%PHP_PATH%" -m -echo. - -pause -goto MENU - -:END -echo. -echo 感谢使用! -timeout /t 1 >nul -exit diff --git a/xuniYou/pages/chat/phone.vue b/xuniYou/pages/chat/phone.vue index 5347ab9..0024d3f 100644 --- a/xuniYou/pages/chat/phone.vue +++ b/xuniYou/pages/chat/phone.vue @@ -209,8 +209,12 @@ }) }, connectWebSocket() { + // 根据 baseURLPy 构建 WebSocket URL + let wsUrl = baseURLPy.replace('http://', 'ws://').replace('https://', 'wss://') + '/voice/call' + console.log('WebSocket URL:', wsUrl) + this.socketTask = uni.connectSocket({ - url: 'wss://lovers.shandonghuixing.com/voice/call', + url: wsUrl, header: { "content-type": "application/json", 'Authorization': 'Bearer ' + uni.getStorageSync("token") || "" diff --git a/xuniYou/pages/index/index.vue b/xuniYou/pages/index/index.vue index c2fe499..10bc9a0 100644 --- a/xuniYou/pages/index/index.vue +++ b/xuniYou/pages/index/index.vue @@ -143,25 +143,28 @@ 装扮设置 - 朋友圈 + + + 日记 + + + + 语音通话 + + + + 视频通话 + 邀请入驻 - - - - - 选择一位互动对象 - - 搜索更多 - - + @@ -2059,21 +2062,23 @@ }); }, tophone() { - // if (this.getBobbiesList.level >= 2) { - // uni.navigateTo({ - // url: '/pages/chat/phone' - // }); - // } else { - // uni.showToast({ - // title: '达到Lv.2才可以解锁电话', - // icon: 'none', - // position: 'top' - // }); - // } + console.log('tophone 方法被调用'); uni.navigateTo({ url: '/pages/chat/phone' }); }, + todiary() { + console.log('todiary 方法被调用'); + uni.navigateTo({ + url: '/pages/chat/diary' + }); + }, + tovoicecall() { + console.log('tovoicecall 方法被调用'); + uni.navigateTo({ + url: '/pages/chat/voiceCall' + }); + }, togift() { uni.navigateTo({ url: '/pages/index/gift' @@ -2226,12 +2231,30 @@ OutfitList({}).then(res => { if (res && res.code == 1 && res.data) { this.homeLooksList = res.data.looks || []; - // 如果有形象栏数据,默认选中第一个 - if (this.homeLooksList.length > 0) { + + // 查找当前使用中的形象 + const currentLook = this.homeLooksList.find(look => look.is_current); + + if (currentLook) { + // 如果找到当前使用的形象,选中它 + this.selectedLookId = currentLook.id; + this.currentLookImageUrl = currentLook.image_url; + this.chatLoverAvatar = currentLook.image_url; + + // 同步更新主图片 + if (this.loverBasicList) { + this.loverBasicList.image_url = currentLook.image_url; + } + } else if (this.homeLooksList.length > 0) { + // 如果没有标记为当前的,默认选中第一个 this.selectedLookId = this.homeLooksList[0].id; this.currentLookImageUrl = this.homeLooksList[0].image_url; - // 同时更新聊天头像 this.chatLoverAvatar = this.homeLooksList[0].image_url; + + // 同步更新主图片 + if (this.loverBasicList) { + this.loverBasicList.image_url = this.homeLooksList[0].image_url; + } } } }).catch(err => { @@ -2243,6 +2266,12 @@ switchLook(look) { if (!look || !look.id) return; + // 立即更新本地显示,避免延迟 + this.selectedLookId = look.id; + if (this.loverBasicList) { + this.loverBasicList.image_url = look.image_url; + } + // 调用后端 API 切换形象 uni.request({ url: baseURLPy + '/outfit/looks/use/' + look.id, @@ -2252,21 +2281,16 @@ }, success: (res) => { if (res.data && res.data.code === 1) { - this.selectedLookId = look.id; - this.currentLookImageUrl = look.image_url; - // 更新聊天页面的头像 this.chatLoverAvatar = look.image_url; // 更新女友基本信息(刷新图片) this.loverBasic(); - uni.showToast({ - title: '形象切换成功', - icon: 'success', - duration: 1500 - }); + // 移除成功提示,静默切换 } else { + // 如果失败,恢复原来的图片 + this.loverBasic(); uni.showToast({ title: res.data.msg || '切换失败', icon: 'none', @@ -2276,6 +2300,8 @@ }, fail: (err) => { console.error('切换形象失败:', err); + // 如果失败,恢复原来的图片 + this.loverBasic(); uni.showToast({ title: '切换失败,请重试', icon: 'none', @@ -5110,21 +5136,33 @@ .home-header { display: flex; align-items: center; - justify-content: space-between; padding: 20rpx 0; margin-bottom: 20rpx; + overflow-x: auto; + overflow-y: hidden; + gap: 15rpx; + /* 隐藏滚动条 */ + scrollbar-width: none; /* Firefox */ + -ms-overflow-style: none; /* IE 10+ */ + } + + .home-header::-webkit-scrollbar { + display: none; /* Chrome Safari */ } .home-header-btn { display: flex; flex-direction: column; align-items: center; - gap: 8rpx; - padding: 10rpx 15rpx; + justify-content: center; + gap: 6rpx; + padding: 12rpx 16rpx; background: rgba(255, 255, 255, 0.8); border-radius: 16rpx; transition: all 0.3s ease; box-shadow: 0 2rpx 8rpx rgba(159, 71, 255, 0.1); + min-width: 100rpx; + flex-shrink: 0; } .home-header-btn:active { @@ -5133,17 +5171,16 @@ } .home-header-icon { - width: 40rpx; - height: 40rpx; + width: 44rpx; + height: 44rpx; + object-fit: contain; } .home-header-text { font-size: 22rpx; color: #666; - } - - .home-header-spacer { - flex: 1; + white-space: nowrap; + text-align: center; } /* 选择互动对象标题 */ diff --git a/启动项目_改进版.bat b/启动项目_改进版.bat deleted file mode 100644 index 96e7a9c..0000000 --- a/启动项目_改进版.bat +++ /dev/null @@ -1,263 +0,0 @@ -@echo off -chcp 65001 >nul -title AI 女友项目 - 启动服务 (改进版) - -REM ========================================== -REM 配置区域 -REM ========================================== -set PHP_PATH=D:\2_part\php-8.0.0-Win32-vs16-x64\php.exe -set PHP_PORT=30100 -set PYTHON_PORT=30101 - -REM ========================================== -REM 检查 MySQL 是否运行 -REM ========================================== -cls -echo. -echo ╔════════════════════════════════════╗ -echo ║ AI 女友项目 - 启动服务 ║ -echo ╚════════════════════════════════════╝ -echo. -echo [检查] 正在检查 MySQL 服务... - -netstat -ano | findstr :3306 >nul 2>&1 -if errorlevel 1 ( - echo [警告] MySQL 服务未运行(端口 3306 未监听) - echo. - echo 请先启动 MySQL 服务,否则 PHP 应用可能无法正常工作 - echo. - set /p CONTINUE=是否继续启动?(Y/N): - if /i not "!CONTINUE!"=="Y" ( - echo. - echo 已取消启动 - pause - exit /b 1 - ) -) else ( - echo [成功] MySQL 服务正在运行 -) -echo. - -REM ========================================== -REM 清理旧的服务进程 -REM ========================================== -echo [清理] 正在检查并清理旧的服务进程... -echo. - -REM 查找占用 30100 端口的进程并终止 -echo [清理] 检查端口 30100... -for /f "tokens=5" %%a in ('netstat -ano ^| findstr :30100 2^>nul') do ( - echo [清理] 终止进程 PID: %%a - taskkill /F /PID %%a >nul 2>&1 -) - -REM 查找占用 30101 端口的进程并终止 -echo [清理] 检查端口 30101... -for /f "tokens=5" %%a in ('netstat -ano ^| findstr :30101 2^>nul') do ( - echo [清理] 终止进程 PID: %%a - taskkill /F /PID %%a >nul 2>&1 -) - -echo. -echo [成功] 端口清理完成 -echo. - -REM 等待端口完全释放 -echo [等待] 等待端口释放(3秒)... -timeout /t 3 >nul -echo. - -REM ========================================== -REM 检查 PHP -REM ========================================== -echo [检查] 正在检查 PHP... - -if not exist "%PHP_PATH%" ( - echo [错误] PHP 未找到: %PHP_PATH% - echo. - echo 请修改脚本中的 PHP_PATH 变量 - echo. - pause - exit /b 1 -) - -"%PHP_PATH%" -v >nul 2>&1 -if errorlevel 1 ( - echo [错误] PHP 无法运行 - pause - exit /b 1 -) - -echo [成功] PHP 已就绪 -echo. - -REM ========================================== -REM 检查 Python -REM ========================================== -echo [检查] 正在检查 Python... - -python --version >nul 2>&1 -if errorlevel 1 ( - echo [错误] Python 未找到或未添加到 PATH - echo. - pause - exit /b 1 -) - -echo [成功] Python 已就绪 -echo. - -REM ========================================== -REM 检查项目目录 -REM ========================================== -echo [检查] 正在检查项目目录... - -if not exist "%~dp0xunifriend_RaeeC\public" ( - echo [错误] PHP 项目目录未找到 - pause - exit /b 1 -) - -if not exist "%~dp0lover" ( - echo [错误] Python 项目目录未找到 - pause - exit /b 1 -) - -echo [成功] 项目目录已就绪 -echo. - -REM ========================================== -REM 获取本机 IP -REM ========================================== -for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /C:"IPv4"') do ( - set LOCAL_IP=%%a - goto :IP_FOUND -) -:IP_FOUND -set LOCAL_IP=%LOCAL_IP: =% - -REM ========================================== -REM 显示启动信息 -REM ========================================== -cls -echo. -echo ╔════════════════════════════════════╗ -echo ║ AI 女友项目 - 启动服务 ║ -echo ╚════════════════════════════════════╝ -echo. -echo 准备启动以下服务: -echo. -echo [PHP 服务器] -echo → 端口: %PHP_PORT% -echo → 本地: http://127.0.0.1:%PHP_PORT% -echo → 测试: http://127.0.0.1:%PHP_PORT%/test_api.php -echo → 局域网: http://%LOCAL_IP%:%PHP_PORT% -echo. -echo [Python 后端] -echo → 端口: %PYTHON_PORT% -echo → 本地: http://127.0.0.1:%PYTHON_PORT% -echo → 局域网: http://%LOCAL_IP%:%PYTHON_PORT% -echo. -echo ──────────────────────────────────── -echo. -echo 按任意键开始启动... -pause >nul - -REM ========================================== -REM 启动 PHP 服务器(使用 router.php) -REM ========================================== -cls -echo. -echo [1/2] 启动 PHP 服务器... -echo. - -start "PHP 服务器 - 端口 %PHP_PORT%" cmd /k "title PHP 服务器 - 端口 %PHP_PORT% && cd /d "%~dp0xunifriend_RaeeC\public" && echo [PHP 服务器] 正在启动... && echo [PHP 服务器] 端口: %PHP_PORT% && echo [PHP 服务器] 访问: http://127.0.0.1:%PHP_PORT% && echo [PHP 服务器] 测试: http://127.0.0.1:%PHP_PORT%/test_api.php && echo. && "%PHP_PATH%" -S 0.0.0.0:%PHP_PORT% router.php" - -echo [成功] PHP 服务器已启动 -echo. - -REM 等待 5 秒让 PHP 完全启动 -echo 等待 PHP 服务器启动(5秒)... -timeout /t 5 >nul - -REM ========================================== -REM 测试 PHP 服务器 -REM ========================================== -echo. -echo [测试] 正在测试 PHP 服务器... -echo. - -powershell -Command "try { $response = Invoke-WebRequest -Uri 'http://127.0.0.1:%PHP_PORT%/test_api.php' -TimeoutSec 5; if ($response.StatusCode -eq 200) { Write-Host '[成功] PHP 服务器响应正常' -ForegroundColor Green } else { Write-Host '[警告] PHP 服务器响应异常' -ForegroundColor Yellow } } catch { Write-Host '[错误] PHP 服务器无响应' -ForegroundColor Red; Write-Host $_.Exception.Message -ForegroundColor Red }" - -echo. -set /p CONTINUE_PYTHON=PHP 服务器已启动,是否继续启动 Python 后端?(Y/N): -if /i not "%CONTINUE_PYTHON%"=="Y" ( - echo. - echo 已取消 Python 后端启动 - echo. - echo 按任意键退出... - pause >nul - exit /b 0 -) - -REM ========================================== -REM 启动 Python 后端 -REM ========================================== -echo. -echo [2/2] 启动 Python 后端... -echo. - -start "Python 后端 - 端口 %PYTHON_PORT%" cmd /k "title Python 后端 - 端口 %PYTHON_PORT% && cd /d "%~dp0" && echo [Python 后端] 正在启动... && echo [Python 后端] 端口: %PYTHON_PORT% && echo [Python 后端] 访问: http://127.0.0.1:%PYTHON_PORT% && echo [Python 后端] API 文档: http://127.0.0.1:%PYTHON_PORT%/docs && echo. && python -m uvicorn lover.main:app --host 0.0.0.0 --port %PYTHON_PORT% --reload" - -echo [成功] Python 后端已启动 -echo. - -REM 等待 3 秒让 Python 完全启动 -echo 等待 Python 后端启动(3秒)... -timeout /t 3 >nul - -REM ========================================== -REM 显示完成信息 -REM ========================================== -cls -echo. -echo ╔════════════════════════════════════╗ -echo ║ 启动成功! ║ -echo ╚════════════════════════════════════╝ -echo. -echo [PHP 服务器] ✓ 已启动 -echo → http://127.0.0.1:%PHP_PORT% -echo → http://127.0.0.1:%PHP_PORT%/test_api.php (测试) -echo → http://127.0.0.1:%PHP_PORT%/admin -echo → http://%LOCAL_IP%:%PHP_PORT% -echo. -echo [Python 后端] ✓ 已启动 -echo → http://127.0.0.1:%PYTHON_PORT% -echo → http://127.0.0.1:%PYTHON_PORT%/docs -echo → http://%LOCAL_IP%:%PYTHON_PORT% -echo. -echo ──────────────────────────────────── -echo. -echo 提示: -echo • 两个服务已在独立窗口中启动 -echo • 可以在窗口中查看运行日志 -echo • 关闭对应窗口可停止服务 -echo • 如果 PHP API 超时,请检查 MySQL 是否运行 -echo. -echo 按任意键打开浏览器测试... -pause >nul - -REM ========================================== -REM 打开浏览器测试 -REM ========================================== -start http://127.0.0.1:%PHP_PORT%/test_api.php -timeout /t 1 >nul -start http://127.0.0.1:%PYTHON_PORT%/docs - -echo. -echo 浏览器已打开! -echo. -echo 按任意键退出(不影响服务运行)... -pause >nul -exit diff --git a/添加打电话按钮_补丁.txt b/添加打电话按钮_补丁.txt deleted file mode 100644 index 6b064c1..0000000 --- a/添加打电话按钮_补丁.txt +++ /dev/null @@ -1,91 +0,0 @@ -=========================================== -添加打电话按钮 - 代码补丁 -=========================================== - -文件:xuniYou/pages/index/index.vue -位置:约第 302-318 行(聊天输入框区域) - -=========================================== -步骤 1:找到以下代码 -=========================================== - - - - - - 发送 - - - -=========================================== -步骤 2:替换为以下代码 -=========================================== - - - - - - - - - - - 发送 - - - -=========================================== -步骤 3:添加样式 -=========================================== - -在