From 9190872fcb6e0449a0b973301eca3bc008ae28fb Mon Sep 17 00:00:00 2001
From: xiao12feng8 <16507319+xiao12feng8@user.noreply.gitee.com>
Date: Thu, 5 Feb 2026 09:35:22 +0800
Subject: [PATCH] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=EF=BC=9A=E8=B0=83=E6=95=B4?=
=?UTF-8?q?=E5=A5=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
PHP服务连接问题解决方案.md | 199 -------------
...in;app --host 0.0.0.0 --port 8000 --reload | 0
start_php_advanced.bat | 161 -----------
xuniYou/pages/chat/phone.vue | 6 +-
xuniYou/pages/index/index.vue | 119 +++++---
启动项目_改进版.bat | 263 ------------------
添加打电话按钮_补丁.txt | 91 ------
清理端口.bat | 87 ------
诊断问题.bat | 82 ------
9 files changed, 83 insertions(+), 925 deletions(-)
delete mode 100644 PHP服务连接问题解决方案.md
delete mode 100644 python -m uvicorn lover.main;app --host 0.0.0.0 --port 8000 --reload
delete mode 100644 start_php_advanced.bat
delete mode 100644 启动项目_改进版.bat
delete mode 100644 添加打电话按钮_补丁.txt
delete mode 100644 清理端口.bat
delete mode 100644 诊断问题.bat
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:添加样式
-===========================================
-
-在