peixue-dev/peidu/Archive/一次性文件/[一次性]签到地址显示修复完成-2026-01-26.md

122 lines
3.6 KiB
Markdown
Raw Normal View History

# 签到地址显示修复完成
## 问题描述
陪伴员签到签退功能中,地址显示为 "453535" 等无效数字而不是真实的地理位置安徽省合肥市蜀山区xxx
## 问题原因
1. **数据库问题**`order` 表的 `service_address` 字段存储了无效数据(纯数字)
2. **前端逻辑问题**:代码优先使用订单地址,即使是无效的纯数字也会显示
## 解决方案
### 1. 前端修复(已完成)
修改了 3 个签到页面,添加地址有效性检测:
#### ✅ `peidu/uniapp/src/teacher-package/pages/teacher/checkin.vue`
-`getAddress()` 方法中添加地址验证
- 检测纯数字地址,自动使用逆地理编码
#### ✅ `peidu/uniapp/teacher-package/pages/teacher/watermark-checkin.vue`
-`loadOrderInfo()` 方法中添加地址验证
- 无效地址设为空字符串,避免显示
#### ✅ `peidu/uniapp/src/teacher-package/pages/teacher/checkout.vue`
-`getAddress()` 方法中添加地址验证
- 检测纯数字地址,自动使用逆地理编码
### 2. 地址验证逻辑
```javascript
// 检查地址是否有效(不是纯数字、不为空)
const orderAddress = this.orderInfo?.serviceAddress
const isValidAddress = orderAddress &&
orderAddress.trim() !== '' &&
!/^\d+$/.test(orderAddress.trim())
if (isValidAddress) {
// 使用订单地址
this.address = orderAddress
} else {
// 使用逆地理编码获取真实地址
const result = await reverseGeocode(lat, lng)
this.address = result.address
}
```
### 3. 数据库修复(待执行)
执行 SQL 脚本清理无效地址:
```bash
peidu/Archive/一次性文件/[一次性]修复订单地址数据-2026-01-26.sql
```
该脚本会将纯数字地址更新为 NULL让前端自动使用逆地理编码。
## 配置要求
### 微信小程序域名白名单
需要在微信小程序后台添加以下域名到 request 合法域名:
```
https://apis.map.qq.com
```
**配置路径:**
微信公众平台 → 开发 → 开发管理 → 开发设置 → 服务器域名 → request合法域名
### 腾讯地图 API Key
已配置在 `peidu/uniapp/src/config/map.js`
```javascript
key: 'Q7CBZ-CC2C5-5O6IA-IU5VM-KJGAF-IKBRO'
```
## 测试步骤
1. **编译小程序**
```bash
cd peidu/uniapp
npm run dev:mp-weixin
```
2. **测试签到功能**
- 进入陪伴员端
- 点击"签到签退"
- 查看地址显示是否为安徽省合肥市蜀山区xxx
3. **测试订单签到**
- 进入待服务订单
- 点击"开始服务"
- 查看地址显示是否正确
## 预期效果
- ✅ 地址显示为安徽省合肥市蜀山区xxx具体到街道
- ✅ 不再显示纯数字453535
- ✅ 自动使用逆地理编码获取真实位置
- ✅ 控制台输出详细日志,便于调试
## 注意事项
1. **首次使用需要授权定位权限**
2. **需要在真机上测试**(模拟器可能无法获取位置)
3. **确保网络连接正常**需要调用腾讯地图API
4. **建议执行数据库修复脚本**,清理历史无效数据
## 相关文件
- `peidu/uniapp/src/config/map.js` - 地图配置和工具函数
- `peidu/uniapp/src/teacher-package/pages/teacher/checkin.vue` - 签到页面
- `peidu/uniapp/teacher-package/pages/teacher/watermark-checkin.vue` - 水印签到页面
- `peidu/uniapp/src/teacher-package/pages/teacher/checkout.vue` - 签退页面
- `peidu/Archive/一次性文件/[一次性]修复订单地址数据-2026-01-26.sql` - 数据库修复脚本
---
**修复完成时间:** 2026-01-26
**修复人员:** Kiro AI