feat: 扫描报告页+手动选波长护理+光疗功效介绍页+诊断框架(占位阈值)

- services/diagnosis.js: 诊断流水线框架,阈值/PD映射为占位待标定,支持单波长降级
- auto-scan: 扫描完成改为出报告让用户选择护理(替代原自动开始治疗)
- 新增 scan-report/manual-treatment/light-info 三页,全部接入 i18n
- api.js: 新增 report/diagnosis-config 接口(对接后端契约)
这个提交包含在:
Guoguo
2026-07-18 20:17:09 -07:00
父节点 d8eb6677c6
当前提交 f2ee086cc8
修改 19 个文件,包含 1270 行新增30 行删除
+91 -2
查看文件
@@ -1,6 +1,95 @@
// Strings for the light-therapy efficacy intro page (pages/light-info).
// Owned by the light-info feature. Keep zh/en keys in sync.
// Lifestyle / non-medical wording on purpose (广告法 / 微信审核 compliance).
module.exports = {
zh: {},
en: {}
zh: {
navTitle: '光疗功效介绍',
headerSubtitle: '认识四种光与护理模式',
lightsSectionTitle: '四种光',
suitsLabel: '适合',
lights: {
red: {
name: '红光',
wavelength: '630–640nm',
effect: '嫩肤焕亮',
desc: '改善暗沉、细纹与松弛感,帮助肌肤紧致提亮。',
suits: '初老、暗沉肌'
},
uv: {
name: '紫光',
wavelength: '415–425nm',
effect: '净痘控油',
desc: '改善痘痘肌、油光与粗大毛孔,帮助肌肤清爽。',
suits: '油痘肌'
},
yellow: {
name: '黄光',
wavelength: '585–595nm',
effect: '匀净提亮',
desc: '改善暗黄、色素不均与泛红,帮助肤色更均匀。',
suits: '暗黄、敏感泛红肌'
},
infrared: {
name: '红外光',
wavelength: '830–840nm',
effect: '深层焕活',
desc: '促进循环、舒缓疲劳感,帮助肌肤放松焕活。',
suits: '疲劳、需深层舒缓的肌肤'
}
},
modesSectionTitle: '护理模式',
modes: [
{ name: '嫩肤焕亮', desc: '红光护理' },
{ name: '净痘控油', desc: '紫光护理' },
{ name: '匀净提亮', desc: '黄光护理' },
{ name: '深层焕活', desc: '红外护理' },
{ name: '舒缓修护', desc: '红+黄复合光,温和护理敏感肌' }
],
disclaimer: '本页内容为光护理科普,不构成医疗建议。'
},
en: {
navTitle: 'Light Care Guide',
headerSubtitle: 'Meet the four lights and the care modes',
lightsSectionTitle: 'Four Lights',
suitsLabel: 'Best for',
lights: {
red: {
name: 'Red',
wavelength: '630–640nm',
effect: 'Glow & Firm',
desc: 'Softens dullness, fine lines and looseness for firmer, brighter-looking skin.',
suits: 'Early-aging, dull skin'
},
uv: {
name: 'Violet',
wavelength: '415–425nm',
effect: 'Clear & Balance',
desc: 'Helps blemish-prone, oily skin and visible pores feel fresher.',
suits: 'Oily, blemish-prone skin'
},
yellow: {
name: 'Yellow',
wavelength: '585–595nm',
effect: 'Even & Brighten',
desc: 'Eases sallowness, uneven tone and redness for a more even look.',
suits: 'Sallow, sensitive, easily-red skin'
},
infrared: {
name: 'Infrared',
wavelength: '830–840nm',
effect: 'Deep Revive',
desc: 'Supports circulation and soothes tired-feeling skin for a relaxed, revived look.',
suits: 'Tired skin needing deep comfort'
}
},
modesSectionTitle: 'Care Modes',
modes: [
{ name: 'Glow & Firm', desc: 'Red light care' },
{ name: 'Clear & Balance', desc: 'Violet light care' },
{ name: 'Even & Brighten', desc: 'Yellow light care' },
{ name: 'Deep Revive', desc: 'Infrared care' },
{ name: 'Soothe & Repair', desc: 'Red + yellow blend, gentle care for sensitive skin' }
],
disclaimer: 'This guide is for light-care education only and is not medical advice.'
}
}
+38 -2
查看文件
@@ -1,6 +1,42 @@
// Strings for the manual treatment (direct wavelength/function select) page
// (pages/manual-treatment). Owned by the manual-mode feature. Keep zh/en in sync.
module.exports = {
zh: {},
en: {}
zh: {
navTitle: '手动护理',
navSubtitle: '直接选择护理功能,快速开始',
functionTitle: '选择护理功能',
functions: {
rejuvenate: { name: '嫩肤焕亮', benefit: '红光温和促进胶原,改善暗沉' },
acne: { name: '净痘控油', benefit: '紫光清洁抑菌,平衡油脂' },
eventone: { name: '匀净提亮', benefit: '黄光舒缓肌肤,提亮肤色' },
revitalize: { name: '深层焕活', benefit: '红外深层导入,焕活紧致' }
},
regionTitle: '选择区域',
durationTitle: '选择时长',
durationUnit: '{min} 分钟',
safetyTip: '单次护理最长 10 分钟,亮度已设为护理中档,请佩戴护目镜',
start: '开始护理',
starting: '启动中...',
noRegionSelected: '请至少选择一个区域',
startFailed: '启动失败'
},
en: {
navTitle: 'Manual Care',
navSubtitle: 'Pick a care function and start right away',
functionTitle: 'Select Care Function',
functions: {
rejuvenate: { name: 'Rejuvenate & Brighten', benefit: 'Red light boosts collagen, eases dullness' },
acne: { name: 'Clear & Oil Control', benefit: 'UV light cleanses and balances oil' },
eventone: { name: 'Even & Brighten', benefit: 'Yellow light soothes and brightens tone' },
revitalize: { name: 'Deep Revitalize', benefit: 'Infrared penetrates deep to firm skin' }
},
regionTitle: 'Select Regions',
durationTitle: 'Select Duration',
durationUnit: '{min} min',
safetyTip: 'Sessions last up to 10 min at a safe medium brightness. Wear eye protection.',
start: 'Start Care',
starting: 'Starting...',
noRegionSelected: 'Please select at least one region',
startFailed: 'Failed to start'
}
}