基本重构完成

This commit is contained in:
lik
2026-10-07 14:55:06 +08:00
parent f655c906f5
commit f0adf77a41
23 changed files with 1284 additions and 685 deletions
+31
View File
@@ -1,5 +1,34 @@
const API = require('../../utils/api.js')
// 由 YYYY-MM-DD 生日换算周岁。
// 后端只下发到「日」、不含时分秒——公示场景要的是"多大",不是哪一天生的。
// 生日缺失 / 非法 / 算出不合常理(负数或 >120),一律返回 0,模板按 0 隐藏该项
function calcAge(birthday) {
if (!birthday) {
return 0
}
// 把 '-' 换成 '/' 再解析:小程序 iOS 对 'YYYY-MM-DD HH:mm:ss' 这类格式
// 会得到 Invalid Date,'/' 分隔是各端都稳的写法
const birth = new Date(String(birthday).replace(/-/g, '/'))
if (Number.isNaN(birth.getTime())) {
return 0
}
const today = new Date()
let age = today.getFullYear() - birth.getFullYear()
// 今年生日还没到,减一岁
const monthDiff = today.getMonth() - birth.getMonth()
if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {
age -= 1
}
// 上限 120 是给运营手抖填错年份兜底,否则页面上会出现"年龄 226 岁"
if (!Number.isFinite(age) || age < 0 || age > 120) {
return 0
}
return age
}
// 陪诊师详情:数据来自后端公开接口 /health/attendant/:id
// 与列表页是同一份白名单数据(不含手机号 / 身份证号 / 证书编号原文),
// 差别在于详情页按 GB/T 47801—2026 4.2.1.5 把公示项补全:
@@ -55,6 +84,8 @@ Page({
initial: name.slice(0, 1),
// 后端 sex 为空串表示未登记,模板据此隐藏该行
sexText: item.sex === 'male' ? '男' : item.sex === 'female' ? '女' : '',
// 周岁由本页现算,未登记生日时为 0,模板据 0 隐藏该行
age: calcAge(item.birthday),
workYears: item.workYears || 0,
orderCount: item.orderCount || 0,
qualificationVerified: !!item.qualificationVerified,