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

3.6 KiB
Raw Permalink Blame 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. 地址验证逻辑

// 检查地址是否有效(不是纯数字、不为空)
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 脚本清理无效地址:

peidu/Archive/一次性文件/[一次性]修复订单地址数据-2026-01-26.sql

该脚本会将纯数字地址更新为 NULL让前端自动使用逆地理编码。

配置要求

微信小程序域名白名单

需要在微信小程序后台添加以下域名到 request 合法域名:

https://apis.map.qq.com

配置路径: 微信公众平台 → 开发 → 开发管理 → 开发设置 → 服务器域名 → request合法域名

腾讯地图 API Key

已配置在 peidu/uniapp/src/config/map.js

key: 'Q7CBZ-CC2C5-5O6IA-IU5VM-KJGAF-IKBRO'

测试步骤

  1. 编译小程序

    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