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

122 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 签到地址显示修复完成
## 问题描述
陪伴员签到签退功能中,地址显示为 "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