fix(客服中心): 清洗客服电话并添加拨号失败提示
- 使用 normalizePhoneNumber 函数清洗电话号码,移除空格、横杠和中文括号等展示字符
- 在 uni.makePhoneCall 失败时添加用户提示,提升错误处理体验
| | |
| | | * 拨打系统设置中的客服电话,未配置时给出兜底提示。 |
| | | */ |
| | | function handleContact() { |
| | | const servicePhone = helpCenterData.value.servicePhone.trim() |
| | | const servicePhone = normalizePhoneNumber(helpCenterData.value.servicePhone) |
| | | if (!servicePhone) { |
| | | uni.showToast({ |
| | | title: '暂未配置客服电话', |
| | |
| | | } |
| | | uni.makePhoneCall({ |
| | | phoneNumber: servicePhone, |
| | | fail() { |
| | | uni.showToast({ |
| | | title: '拨号失败,请检查客服电话配置', |
| | | icon: 'none', |
| | | }) |
| | | }, |
| | | }) |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 清洗客服电话,兼容空格、横杠和中文括号等展示字符。 |
| | | */ |
| | | function normalizePhoneNumber(value: unknown) { |
| | | if (typeof value !== 'string') { |
| | | return '' |
| | | } |
| | | return value |
| | | .trim() |
| | | .replace(/[()()\s-]/g, '') |
| | | .replace(/(?!^)\+/g, '') |
| | | } |
| | | |
| | | /** |
| | | * 将可选数字归一化为空值。 |
| | | */ |
| | | function normalizeOptionalNumber(value: unknown) { |