511 lines
63 KiB
HTML
511 lines
63 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=no">
|
||
<meta name="format-detection" content="telephone=no">
|
||
<meta name="description" content="1'me肌肤状态检测:拍摄正面与左右侧面照片,即时获取六维肌肤状态分析与个性化护理建议。">
|
||
<meta name="theme-color" content="#101823">
|
||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
<meta property="og:title" content="1'me肌肤状态检测">
|
||
<meta property="og:description" content="拍摄正面与左右侧面照片,即时获取六维肌肤状态分析与个性化护理建议。">
|
||
<title>1'me肌肤状态检测</title>
|
||
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
||
<link rel="preload" as="image" href="assets/img/ui-20261009/bg-login-h5.webp" fetchpriority="high">
|
||
<link rel="stylesheet" href="vendor/mobile-select/mobile-select.css">
|
||
<link rel="stylesheet" href="css/style.css">
|
||
<link rel="stylesheet" href="css/ui-20261009.css">
|
||
<link rel="stylesheet" href="css/ui-20261012.css">
|
||
</head>
|
||
<body>
|
||
|
||
<!-- ═══════════ 01 启动页 ═══════════ -->
|
||
<section class="screen active" id="s-login">
|
||
<img class="login-brand" src="assets/img/ui-20261009/brand-login.png" alt="1’me 以我">
|
||
<div class="login-bottom">
|
||
<button class="login-button login-wechat" data-action="login-wechat"><img src="assets/img/ui-20261009/icon-wechat.png" alt="">微信登录</button>
|
||
<button class="login-button login-browser" data-action="guest-experience"><img src="assets/img/ui-20261009/icon-guest.png" alt="">游客登陆</button>
|
||
<label class="login-consent"><input type="checkbox" id="login-consent"><span>同意<button type="button" data-action="open-policy">用户协议、隐私政策和儿童保护政策</button></span></label>
|
||
<p class="login-message" id="login-message" role="status">正在检查登录状态…</p>
|
||
</div>
|
||
</section>
|
||
<section class="screen" id="s-history">
|
||
<div class="history-content">
|
||
<h1 class="report-title">您的报告</h1>
|
||
<div class="account-status account-status-history"><span data-auth-status></span><button type="button" class="account-logout" data-action="logout-wechat" hidden>退出登录</button></div>
|
||
<div class="card history-count"><span>测试数量</span><p id="history-count">正在读取报告…</p></div>
|
||
<p class="identity-note" id="identity-note"></p>
|
||
<div id="history-list" aria-live="polite"></div>
|
||
<button class="history-retry" data-action="history-retry">刷新列表</button>
|
||
<small class="font-credit">本应用使用 MiSans 字体</small>
|
||
</div>
|
||
</section>
|
||
<section class="screen" id="s-splash">
|
||
<div class="splash-bg"></div>
|
||
<div class="account-status account-status-home"><span data-auth-status></span><button type="button" class="account-logout" data-action="logout-wechat" hidden>退出登录</button></div>
|
||
<div class="splash-slogan splash-slogan-updated" role="img" aria-label="1'me,FROM THE INSIDE OUT;以我为始 自有表现">
|
||
<img class="splash-slogan-copy" src="assets/img/ui-20261012/splash-slogan.png" width="718" height="217" loading="lazy" alt="">
|
||
<span class="splash-slogan-brand" aria-hidden="true">1'me,</span>
|
||
<span class="splash-slogan-english" aria-hidden="true">FROM THE INSIDE OUT</span>
|
||
</div>
|
||
<div class="splash-bottom">
|
||
<div class="brand-row">
|
||
<img src="assets/img/ui-20261012/brand-lockup.png" width="517" height="59" loading="lazy" alt="1'me 肌肤状态检测" class="brand-lockup">
|
||
</div>
|
||
<button class="btn btn-primary" data-action="open-privacy"><img class="splash-button-label" src="assets/img/ui-20261012/button-start-label.png" width="161" height="40" loading="lazy" alt="开始检测"></button>
|
||
<button class="btn btn-primary btn-history" data-action="history"><img class="splash-button-label" src="assets/img/ui-20261012/button-history-label.png" width="163" height="39" loading="lazy" alt="我的报告"></button>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ═══════════ 03 档案填写 ═══════════ -->
|
||
<section class="screen" id="s-profile">
|
||
<div class="profile-bg"></div>
|
||
<div class="profile-body">
|
||
<h1 class="page-title">您的肌肤状态</h1>
|
||
|
||
<!-- 三个选择控件同一套样式:点击后底部弹出滚轮(vendor/mobile-select) -->
|
||
<div class="form-row two">
|
||
<div class="field">
|
||
<label class="field-label">您的出生年月</label>
|
||
<button type="button" class="pick" id="pick-birth"><span class="pick-value"></span><i class="chev down"></i></button>
|
||
</div>
|
||
<div class="field">
|
||
<label class="field-label">您的性别</label>
|
||
<button type="button" class="pick" id="pick-gender"><span class="pick-value"></span><i class="chev down"></i></button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="field">
|
||
<label class="field-label">您的所在地区</label>
|
||
<button type="button" class="pick" id="pick-region"><span class="pick-value"></span><i class="chev down"></i></button>
|
||
</div>
|
||
<input type="hidden" id="f-birth">
|
||
<input type="hidden" id="f-age">
|
||
<input type="hidden" id="f-gender">
|
||
<input type="hidden" id="f-region">
|
||
|
||
<div class="field profile-skin-field">
|
||
<label class="field-label">您的日常肤质</label>
|
||
<div class="skin-card">
|
||
<div class="skin-axis">
|
||
<span class="axis-item"><i class="chip" style="background:#EAE6E1"></i>偏干</span>
|
||
<span class="axis-item"><i class="chip" style="background:#F5F078"></i>偏油</span>
|
||
<span class="axis-item"><i class="chip" style="background:#DBF6D6"></i>水油平衡</span>
|
||
</div>
|
||
<div class="skin-stage">
|
||
<button type="button" class="skin-arrow prev" data-skin-step="-1" aria-label="上一个"><i class="chev left"></i></button>
|
||
<div class="skin-carousel" id="skin-carousel" role="group" tabindex="0" aria-label="日常肤质">
|
||
<div class="skin-track" id="skin-track"></div>
|
||
</div>
|
||
<button type="button" class="skin-arrow next" data-skin-step="1" aria-label="下一个"><i class="chev right"></i></button>
|
||
</div>
|
||
<div class="skin-dots" id="skin-dots"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<button class="btn btn-primary btn-submit" data-action="submit-profile">提交</button>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ═══════════ 05-07 拍照页 ═══════════ -->
|
||
<section class="screen" id="s-cam">
|
||
<div class="cam-bg" id="cam-bg"></div>
|
||
<p class="cam-step" id="cam-step">1/3<br>请正对屏幕</p>
|
||
<!-- 取景蒙版:SVG mask 镂空(框外 85% 黑),无外轮廓描边;data-step 切换三种轮廓
|
||
轮廓由 Figma 拍照示意图(design/assets/images/*-拍照示意.png,alpha 镂空区)逐像素描摹生成,坐标为 Figma 375×812 整帧;viewBox 只取 y 86–812(帧顶 86px 是微信导航栏,不属于 H5 视口)
|
||
0=正脸(含耳部) 1=左脸出镜(用户头向自己右侧转,镜像预览中耳在画面左、鼻朝画面右) 2=右脸出镜(头向自己左侧转,耳在画面右、鼻朝画面左)
|
||
data-step 取 CAM_STEPS[].mask(拍摄顺序 正→右→左,对齐 Figma) -->
|
||
<svg class="cam-mask" id="cam-mask" data-step="0" viewBox="0 86 375 726" preserveAspectRatio="xMidYMid meet" aria-hidden="true">
|
||
<defs>
|
||
<linearGradient id="scan-grad" x1="0" y1="0" x2="0" y2="1">
|
||
<stop offset="0" stop-color="#2EE6F0" stop-opacity="0"/>
|
||
<stop offset=".92" stop-color="#2EE6F0" stop-opacity=".32"/>
|
||
<stop offset="1" stop-color="#2EE6F0" stop-opacity=".95"/>
|
||
</linearGradient>
|
||
<mask id="cam-cut" maskUnits="userSpaceOnUse" x="-1000" y="-1000" width="2375" height="2812">
|
||
<rect x="-1000" y="-1000" width="2375" height="2812" fill="#fff"/>
|
||
<g fill="#000">
|
||
<path data-shape="0" d="M54.1 388.5L56.1 387.1L58.2 386.0L60.3 383.5L62.4 382.2L64.5 381.4L66.5 370.5L68.6 357.6L70.7 343.0L72.8 327.1L74.9 310.3L76.9 302.9L79.0 297.1L81.1 292.3L83.2 288.0L85.3 284.2L87.3 280.8L89.4 277.8L91.5 275.0L93.6 272.3L95.7 269.9L97.7 267.6L99.8 265.5L101.9 263.5L104.0 261.6L106.1 259.9L108.1 258.3L110.2 256.8L112.3 255.3L114.4 254.0L116.5 252.7L118.5 251.4L120.6 250.2L122.7 249.1L124.8 248.1L126.8 247.1L128.9 246.2L131.0 245.3L133.1 244.4L135.2 243.7L137.2 242.9L139.3 242.2L141.4 241.6L143.5 241.0L145.6 240.4L147.6 239.9L149.7 239.4L151.8 238.9L153.9 238.5L156.0 238.1L158.0 237.7L160.1 237.4L162.2 237.0L164.3 236.7L166.4 236.4L168.4 236.1L170.5 235.9L172.6 235.8L174.7 235.7L176.8 235.5L178.8 235.4L180.9 235.4L183.0 235.3L185.1 235.3L187.2 235.3L189.2 235.3L191.3 235.3L193.4 235.3L195.5 235.3L197.6 235.3L199.6 235.4L201.7 235.5L203.8 235.7L205.9 235.9L207.9 236.1L210.0 236.4L212.1 236.7L214.2 237.0L216.3 237.4L218.3 237.7L220.4 238.1L222.5 238.5L224.6 238.9L226.7 239.4L228.7 239.9L230.8 240.6L232.9 241.2L235.0 241.9L237.1 242.6L239.1 243.3L241.2 244.0L243.3 244.8L245.4 245.6L247.5 246.5L249.5 247.5L251.6 248.4L253.7 249.5L255.8 250.7L257.9 251.9L259.9 253.2L262.0 254.6L264.1 256.0L266.2 257.4L268.3 259.1L270.3 260.7L272.4 262.5L274.5 264.5L276.6 266.5L278.7 268.7L280.7 271.0L282.8 273.6L284.9 276.4L287.0 279.3L289.0 282.6L291.1 286.2L293.2 290.2L295.3 294.7L297.4 300.1L299.4 306.6L301.5 315.7L303.6 332.1L305.7 347.2L307.8 360.9L309.8 373.0L311.9 381.7L314.0 382.7L316.1 384.5L318.2 387.3L320.2 388.6L321.3 390.2L321.3 408.3L320.2 412.8L318.2 417.1L316.1 425.1L314.0 432.9L311.9 439.5L309.8 445.1L307.8 449.8L305.7 453.7L303.6 456.8L301.5 459.2L299.4 461.1L297.4 462.5L295.3 464.7L293.2 467.6L291.1 471.4L289.0 476.0L287.0 481.4L284.9 486.5L282.8 491.4L280.7 496.0L278.7 500.5L276.6 504.7L274.5 508.7L272.4 512.6L270.3 516.2L268.3 519.7L266.2 523.0L264.1 526.2L262.0 529.3L259.9 532.3L257.9 535.1L255.8 537.9L253.7 540.5L251.6 543.0L249.5 545.3L247.5 547.6L245.4 549.7L243.3 551.8L241.2 553.8L239.1 555.8L237.1 557.6L235.0 559.3L232.9 560.9L230.8 562.4L228.7 563.8L226.7 565.2L224.6 566.5L222.5 567.6L220.4 568.7L218.3 569.8L216.3 570.7L214.2 571.7L212.1 572.6L210.0 573.4L207.9 574.1L205.9 574.7L203.8 575.2L201.7 575.7L199.6 576.2L197.6 576.6L195.5 576.9L193.4 577.1L191.3 577.2L189.2 577.3L187.2 577.4L185.1 577.3L183.0 577.2L180.9 577.0L178.8 576.7L176.8 576.3L174.7 576.0L172.6 575.6L170.5 575.1L168.4 574.6L166.4 573.9L164.3 573.2L162.2 572.3L160.1 571.4L158.0 570.5L156.0 569.4L153.9 568.3L151.8 567.2L149.7 566.0L147.6 564.7L145.6 563.3L143.5 561.8L141.4 560.2L139.3 558.6L137.2 556.9L135.2 555.0L133.1 553.1L131.0 551.1L128.9 549.0L126.8 546.8L124.8 544.4L122.7 542.0L120.6 539.4L118.5 536.8L116.5 534.1L114.4 531.2L112.3 528.2L110.2 525.0L108.1 521.7L106.1 518.2L104.0 514.6L101.9 510.9L99.8 507.0L97.7 502.8L95.7 498.5L93.6 493.9L91.5 489.1L89.4 484.2L87.3 479.0L85.3 473.9L83.2 469.7L81.1 466.3L79.0 463.8L76.9 461.9L74.9 460.3L72.8 458.2L70.7 455.5L68.6 452.1L66.5 447.9L64.5 442.9L62.4 436.8L60.3 429.5L58.2 421.2L56.1 417.0L54.1 412.3Z"/>
|
||
<path data-shape="1" d="M55.8 396.6L57.9 382.4L60.0 370.8L62.0 353.4L64.1 336.1L66.2 318.3L68.3 309.9L70.4 303.9L72.4 298.9L74.5 294.5L76.6 290.5L78.7 286.9L80.8 283.6L82.8 280.5L84.9 277.6L87.0 274.9L89.1 272.4L91.2 270.1L93.2 267.9L95.3 265.8L97.4 263.8L99.5 262.0L101.5 260.2L103.6 258.5L105.7 256.9L107.8 255.4L109.9 254.0L111.9 252.6L114.0 251.3L116.1 250.0L118.2 248.8L120.3 247.6L122.3 246.6L124.4 245.5L126.5 244.6L128.6 243.7L130.7 242.8L132.7 242.0L134.8 241.3L136.9 240.5L139.0 239.8L141.1 239.2L143.1 238.6L145.2 238.0L147.3 237.5L149.4 237.1L151.5 236.7L153.5 236.3L155.6 236.0L157.7 235.7L159.8 235.3L161.9 235.0L163.9 234.8L166.0 234.5L168.1 234.4L170.2 234.3L172.3 234.2L174.3 234.1L176.4 234.1L178.5 234.0L180.6 233.9L182.6 234.0L184.7 234.1L186.8 234.1L188.9 234.3L191.0 234.4L193.0 234.5L195.1 234.7L197.2 234.9L199.3 235.1L201.4 235.4L203.4 235.6L205.5 235.9L207.6 236.2L209.7 236.6L211.8 236.9L213.8 237.3L215.9 237.8L218.0 238.2L220.1 238.6L222.2 239.1L224.2 239.7L226.3 240.2L228.4 240.8L230.5 241.4L232.6 242.0L234.6 242.6L236.7 243.3L238.8 244.1L240.9 244.8L243.0 245.7L245.0 246.6L247.1 247.4L249.2 248.3L251.3 249.3L253.4 250.2L255.4 251.2L257.5 252.3L259.6 253.4L261.7 254.6L263.7 255.8L265.8 257.1L267.9 258.5L270.0 259.8L272.1 261.3L274.1 262.7L276.2 264.3L278.3 265.9L280.4 267.6L282.5 269.4L284.5 271.4L286.6 273.4L288.7 275.5L290.8 277.7L292.9 279.9L294.9 282.4L297.0 284.9L299.1 287.6L301.2 290.5L303.3 293.7L305.3 297.2L307.4 301.1L309.5 305.6L311.6 311.0L313.7 318.2L315.7 341.8L317.8 349.8L318.9 361.1L318.9 451.5L317.8 456.2L315.7 460.4L313.7 468.7L311.6 476.2L309.5 482.5L307.4 488.1L305.3 493.2L303.3 498.0L301.2 502.5L299.1 506.8L297.0 511.0L294.9 515.0L292.9 518.9L290.8 522.7L288.7 526.5L286.6 530.1L284.5 533.7L282.5 537.2L280.4 540.8L278.3 544.1L276.2 547.5L274.1 550.6L272.1 553.7L270.0 556.5L267.9 559.1L265.8 561.6L263.7 563.8L261.7 565.8L259.6 567.6L257.5 569.2L255.4 570.7L253.4 572.0L251.3 573.2L249.2 574.2L247.1 575.0L245.0 575.8L243.0 576.4L240.9 576.9L238.8 577.2L236.7 577.5L234.6 577.7L232.6 577.7L230.5 577.7L228.4 577.7L226.3 577.5L224.2 577.3L222.2 577.0L220.1 576.6L218.0 576.2L215.9 575.7L213.8 575.2L211.8 574.6L209.7 573.9L207.6 573.2L205.5 572.5L203.4 571.8L201.4 571.0L199.3 570.2L197.2 569.3L195.1 568.3L193.0 567.4L191.0 566.3L188.9 565.3L186.8 564.3L184.7 563.2L182.6 562.2L180.6 561.1L178.5 560.0L176.4 558.8L174.3 557.6L172.3 556.4L170.2 555.1L168.1 553.8L166.0 552.5L163.9 551.1L161.9 549.7L159.8 548.4L157.7 547.0L155.6 545.5L153.5 544.1L151.5 542.6L149.4 541.0L147.3 539.4L145.2 537.9L143.1 536.2L141.1 534.5L139.0 532.8L136.9 531.1L134.8 529.3L132.7 527.5L130.7 525.6L128.6 523.7L126.5 521.7L124.4 519.7L122.3 517.5L120.3 515.3L118.2 512.8L116.1 510.1L114.0 507.2L111.9 503.9L109.9 500.2L107.8 496.1L105.7 491.6L103.6 486.6L101.5 481.1L99.5 476.2L97.4 472.2L95.3 469.2L93.2 467.4L91.2 466.6L89.1 466.1L87.0 465.4L84.9 464.5L82.8 463.4L80.8 462.1L78.7 460.5L76.6 458.5L74.5 456.2L72.4 453.6L70.4 450.6L68.3 447.3L66.2 443.6L64.1 439.4L62.0 434.5L60.0 428.3L57.9 425.3L55.8 422.0Z"/>
|
||
<path data-shape="2" d="M55.8 354.9L57.9 344.8L60.0 337.7L62.0 316.6L64.1 310.1L66.2 305.0L68.3 300.8L70.4 297.0L72.4 293.6L74.5 290.5L76.6 287.6L78.7 284.9L80.8 282.4L82.8 279.9L84.9 277.7L87.0 275.5L89.1 273.5L91.2 271.5L93.2 269.7L95.3 267.9L97.4 266.1L99.5 264.4L101.5 262.8L103.6 261.3L105.7 259.8L107.8 258.5L109.9 257.2L111.9 256.0L114.0 254.7L116.1 253.6L118.2 252.4L120.3 251.3L122.3 250.3L124.4 249.3L126.5 248.4L128.6 247.5L130.7 246.6L132.7 245.8L134.8 245.1L136.9 244.3L139.0 243.6L141.1 242.9L143.1 242.2L145.2 241.5L147.3 240.9L149.4 240.3L151.5 239.7L153.5 239.2L155.6 238.7L157.7 238.2L159.8 237.8L161.9 237.4L163.9 237.0L166.0 236.7L168.1 236.3L170.2 236.0L172.3 235.7L174.3 235.4L176.4 235.2L178.5 235.0L180.6 234.8L182.6 234.6L184.7 234.5L186.8 234.4L188.9 234.3L191.0 234.3L193.0 234.3L195.1 234.3L197.2 234.3L199.3 234.3L201.4 234.4L203.4 234.5L205.5 234.6L207.6 234.8L209.7 235.0L211.8 235.2L213.8 235.4L215.9 235.7L218.0 236.0L220.1 236.3L222.2 236.7L224.2 237.1L226.3 237.5L228.4 238.0L230.5 238.5L232.6 239.0L234.6 239.6L236.7 240.2L238.8 240.8L240.9 241.6L243.0 242.4L245.0 243.1L247.1 243.9L249.2 244.8L251.3 245.7L253.4 246.7L255.4 247.8L257.5 248.9L259.6 250.1L261.7 251.3L263.7 252.7L265.8 254.0L267.9 255.4L270.0 256.9L272.1 258.5L274.1 260.3L276.2 262.1L278.3 264.1L280.4 266.1L282.5 268.2L284.5 270.4L286.6 272.8L288.7 275.3L290.8 278.1L292.9 281.0L294.9 284.2L297.0 287.6L299.1 291.2L301.2 295.2L303.3 299.8L305.3 305.0L307.4 311.3L309.5 329.6L311.6 347.5L313.7 365.1L315.7 382.1L317.8 396.1L318.9 397.7L318.9 419.8L317.8 422.9L315.7 425.8L313.7 431.4L311.6 436.8L309.5 441.2L307.4 445.3L305.3 448.8L303.3 452.0L301.2 454.8L299.1 457.3L297.0 459.4L294.9 461.3L292.9 462.9L290.8 464.1L288.7 465.1L286.6 465.8L284.5 466.4L282.5 466.9L280.4 468.5L278.3 471.2L276.2 474.9L274.1 479.5L272.1 484.9L270.0 489.9L267.9 494.5L265.8 498.5L263.7 502.3L261.7 505.7L259.6 508.7L257.5 511.5L255.4 514.1L253.4 516.4L251.3 518.6L249.2 520.8L247.1 522.8L245.0 524.7L243.0 526.5L240.9 528.3L238.8 530.0L236.7 531.8L234.6 533.5L232.6 535.2L230.5 536.8L228.4 538.4L226.3 540.0L224.2 541.5L222.2 543.0L220.1 544.5L218.0 545.9L215.9 547.3L213.8 548.7L211.8 550.1L209.7 551.5L207.6 552.8L205.5 554.1L203.4 555.3L201.4 556.6L199.3 557.8L197.2 558.9L195.1 560.0L193.0 561.2L191.0 562.3L188.9 563.4L186.8 564.5L184.7 565.5L182.6 566.5L180.6 567.4L178.5 568.3L176.4 569.2L174.3 570.0L172.3 570.8L170.2 571.6L168.1 572.3L166.0 573.0L163.9 573.7L161.9 574.3L159.8 574.9L157.7 575.4L155.6 575.9L153.5 576.3L151.5 576.7L149.4 577.0L147.3 577.3L145.2 577.5L143.1 577.7L141.1 577.7L139.0 577.7L136.9 577.7L134.8 577.5L132.7 577.2L130.7 576.8L128.6 576.3L126.5 575.6L124.4 574.7L122.3 573.7L120.3 572.5L118.2 571.2L116.1 569.6L114.0 567.9L111.9 566.0L109.9 563.8L107.8 561.6L105.7 559.0L103.6 556.3L101.5 553.4L99.5 550.4L97.4 547.0L95.3 543.7L93.2 540.1L91.2 536.5L89.1 532.8L87.0 529.1L84.9 525.3L82.8 521.4L80.8 517.5L78.7 513.4L76.6 509.2L74.5 505.0L72.4 500.5L70.4 495.8L68.3 490.7L66.2 485.3L64.1 478.7L62.0 466.5L60.0 453.6L57.9 447.0L55.8 438.2Z"/>
|
||
</g>
|
||
</mask>
|
||
</defs>
|
||
<rect class="cam-dim-rect" x="-1000" y="-1000" width="2375" height="2812" mask="url(#cam-cut)"/>
|
||
<!-- 动态捕捉扫描带:clipPath 由 app.js 复制当前三种轮廓生成(#cam-clip),只在轮廓内可见 -->
|
||
<g class="cam-scan" clip-path="url(#cam-clip)">
|
||
<rect class="cam-scan-band" x="40" y="150" width="295" height="84" fill="url(#scan-grad)"/>
|
||
</g>
|
||
<g class="cam-line">
|
||
<path data-shape="0" d="M54.1 388.5L56.1 387.1L58.2 386.0L60.3 383.5L62.4 382.2L64.5 381.4L66.5 370.5L68.6 357.6L70.7 343.0L72.8 327.1L74.9 310.3L76.9 302.9L79.0 297.1L81.1 292.3L83.2 288.0L85.3 284.2L87.3 280.8L89.4 277.8L91.5 275.0L93.6 272.3L95.7 269.9L97.7 267.6L99.8 265.5L101.9 263.5L104.0 261.6L106.1 259.9L108.1 258.3L110.2 256.8L112.3 255.3L114.4 254.0L116.5 252.7L118.5 251.4L120.6 250.2L122.7 249.1L124.8 248.1L126.8 247.1L128.9 246.2L131.0 245.3L133.1 244.4L135.2 243.7L137.2 242.9L139.3 242.2L141.4 241.6L143.5 241.0L145.6 240.4L147.6 239.9L149.7 239.4L151.8 238.9L153.9 238.5L156.0 238.1L158.0 237.7L160.1 237.4L162.2 237.0L164.3 236.7L166.4 236.4L168.4 236.1L170.5 235.9L172.6 235.8L174.7 235.7L176.8 235.5L178.8 235.4L180.9 235.4L183.0 235.3L185.1 235.3L187.2 235.3L189.2 235.3L191.3 235.3L193.4 235.3L195.5 235.3L197.6 235.3L199.6 235.4L201.7 235.5L203.8 235.7L205.9 235.9L207.9 236.1L210.0 236.4L212.1 236.7L214.2 237.0L216.3 237.4L218.3 237.7L220.4 238.1L222.5 238.5L224.6 238.9L226.7 239.4L228.7 239.9L230.8 240.6L232.9 241.2L235.0 241.9L237.1 242.6L239.1 243.3L241.2 244.0L243.3 244.8L245.4 245.6L247.5 246.5L249.5 247.5L251.6 248.4L253.7 249.5L255.8 250.7L257.9 251.9L259.9 253.2L262.0 254.6L264.1 256.0L266.2 257.4L268.3 259.1L270.3 260.7L272.4 262.5L274.5 264.5L276.6 266.5L278.7 268.7L280.7 271.0L282.8 273.6L284.9 276.4L287.0 279.3L289.0 282.6L291.1 286.2L293.2 290.2L295.3 294.7L297.4 300.1L299.4 306.6L301.5 315.7L303.6 332.1L305.7 347.2L307.8 360.9L309.8 373.0L311.9 381.7L314.0 382.7L316.1 384.5L318.2 387.3L320.2 388.6L321.3 390.2L321.3 408.3L320.2 412.8L318.2 417.1L316.1 425.1L314.0 432.9L311.9 439.5L309.8 445.1L307.8 449.8L305.7 453.7L303.6 456.8L301.5 459.2L299.4 461.1L297.4 462.5L295.3 464.7L293.2 467.6L291.1 471.4L289.0 476.0L287.0 481.4L284.9 486.5L282.8 491.4L280.7 496.0L278.7 500.5L276.6 504.7L274.5 508.7L272.4 512.6L270.3 516.2L268.3 519.7L266.2 523.0L264.1 526.2L262.0 529.3L259.9 532.3L257.9 535.1L255.8 537.9L253.7 540.5L251.6 543.0L249.5 545.3L247.5 547.6L245.4 549.7L243.3 551.8L241.2 553.8L239.1 555.8L237.1 557.6L235.0 559.3L232.9 560.9L230.8 562.4L228.7 563.8L226.7 565.2L224.6 566.5L222.5 567.6L220.4 568.7L218.3 569.8L216.3 570.7L214.2 571.7L212.1 572.6L210.0 573.4L207.9 574.1L205.9 574.7L203.8 575.2L201.7 575.7L199.6 576.2L197.6 576.6L195.5 576.9L193.4 577.1L191.3 577.2L189.2 577.3L187.2 577.4L185.1 577.3L183.0 577.2L180.9 577.0L178.8 576.7L176.8 576.3L174.7 576.0L172.6 575.6L170.5 575.1L168.4 574.6L166.4 573.9L164.3 573.2L162.2 572.3L160.1 571.4L158.0 570.5L156.0 569.4L153.9 568.3L151.8 567.2L149.7 566.0L147.6 564.7L145.6 563.3L143.5 561.8L141.4 560.2L139.3 558.6L137.2 556.9L135.2 555.0L133.1 553.1L131.0 551.1L128.9 549.0L126.8 546.8L124.8 544.4L122.7 542.0L120.6 539.4L118.5 536.8L116.5 534.1L114.4 531.2L112.3 528.2L110.2 525.0L108.1 521.7L106.1 518.2L104.0 514.6L101.9 510.9L99.8 507.0L97.7 502.8L95.7 498.5L93.6 493.9L91.5 489.1L89.4 484.2L87.3 479.0L85.3 473.9L83.2 469.7L81.1 466.3L79.0 463.8L76.9 461.9L74.9 460.3L72.8 458.2L70.7 455.5L68.6 452.1L66.5 447.9L64.5 442.9L62.4 436.8L60.3 429.5L58.2 421.2L56.1 417.0L54.1 412.3Z"/>
|
||
<path data-shape="1" d="M55.8 396.6L57.9 382.4L60.0 370.8L62.0 353.4L64.1 336.1L66.2 318.3L68.3 309.9L70.4 303.9L72.4 298.9L74.5 294.5L76.6 290.5L78.7 286.9L80.8 283.6L82.8 280.5L84.9 277.6L87.0 274.9L89.1 272.4L91.2 270.1L93.2 267.9L95.3 265.8L97.4 263.8L99.5 262.0L101.5 260.2L103.6 258.5L105.7 256.9L107.8 255.4L109.9 254.0L111.9 252.6L114.0 251.3L116.1 250.0L118.2 248.8L120.3 247.6L122.3 246.6L124.4 245.5L126.5 244.6L128.6 243.7L130.7 242.8L132.7 242.0L134.8 241.3L136.9 240.5L139.0 239.8L141.1 239.2L143.1 238.6L145.2 238.0L147.3 237.5L149.4 237.1L151.5 236.7L153.5 236.3L155.6 236.0L157.7 235.7L159.8 235.3L161.9 235.0L163.9 234.8L166.0 234.5L168.1 234.4L170.2 234.3L172.3 234.2L174.3 234.1L176.4 234.1L178.5 234.0L180.6 233.9L182.6 234.0L184.7 234.1L186.8 234.1L188.9 234.3L191.0 234.4L193.0 234.5L195.1 234.7L197.2 234.9L199.3 235.1L201.4 235.4L203.4 235.6L205.5 235.9L207.6 236.2L209.7 236.6L211.8 236.9L213.8 237.3L215.9 237.8L218.0 238.2L220.1 238.6L222.2 239.1L224.2 239.7L226.3 240.2L228.4 240.8L230.5 241.4L232.6 242.0L234.6 242.6L236.7 243.3L238.8 244.1L240.9 244.8L243.0 245.7L245.0 246.6L247.1 247.4L249.2 248.3L251.3 249.3L253.4 250.2L255.4 251.2L257.5 252.3L259.6 253.4L261.7 254.6L263.7 255.8L265.8 257.1L267.9 258.5L270.0 259.8L272.1 261.3L274.1 262.7L276.2 264.3L278.3 265.9L280.4 267.6L282.5 269.4L284.5 271.4L286.6 273.4L288.7 275.5L290.8 277.7L292.9 279.9L294.9 282.4L297.0 284.9L299.1 287.6L301.2 290.5L303.3 293.7L305.3 297.2L307.4 301.1L309.5 305.6L311.6 311.0L313.7 318.2L315.7 341.8L317.8 349.8L318.9 361.1L318.9 451.5L317.8 456.2L315.7 460.4L313.7 468.7L311.6 476.2L309.5 482.5L307.4 488.1L305.3 493.2L303.3 498.0L301.2 502.5L299.1 506.8L297.0 511.0L294.9 515.0L292.9 518.9L290.8 522.7L288.7 526.5L286.6 530.1L284.5 533.7L282.5 537.2L280.4 540.8L278.3 544.1L276.2 547.5L274.1 550.6L272.1 553.7L270.0 556.5L267.9 559.1L265.8 561.6L263.7 563.8L261.7 565.8L259.6 567.6L257.5 569.2L255.4 570.7L253.4 572.0L251.3 573.2L249.2 574.2L247.1 575.0L245.0 575.8L243.0 576.4L240.9 576.9L238.8 577.2L236.7 577.5L234.6 577.7L232.6 577.7L230.5 577.7L228.4 577.7L226.3 577.5L224.2 577.3L222.2 577.0L220.1 576.6L218.0 576.2L215.9 575.7L213.8 575.2L211.8 574.6L209.7 573.9L207.6 573.2L205.5 572.5L203.4 571.8L201.4 571.0L199.3 570.2L197.2 569.3L195.1 568.3L193.0 567.4L191.0 566.3L188.9 565.3L186.8 564.3L184.7 563.2L182.6 562.2L180.6 561.1L178.5 560.0L176.4 558.8L174.3 557.6L172.3 556.4L170.2 555.1L168.1 553.8L166.0 552.5L163.9 551.1L161.9 549.7L159.8 548.4L157.7 547.0L155.6 545.5L153.5 544.1L151.5 542.6L149.4 541.0L147.3 539.4L145.2 537.9L143.1 536.2L141.1 534.5L139.0 532.8L136.9 531.1L134.8 529.3L132.7 527.5L130.7 525.6L128.6 523.7L126.5 521.7L124.4 519.7L122.3 517.5L120.3 515.3L118.2 512.8L116.1 510.1L114.0 507.2L111.9 503.9L109.9 500.2L107.8 496.1L105.7 491.6L103.6 486.6L101.5 481.1L99.5 476.2L97.4 472.2L95.3 469.2L93.2 467.4L91.2 466.6L89.1 466.1L87.0 465.4L84.9 464.5L82.8 463.4L80.8 462.1L78.7 460.5L76.6 458.5L74.5 456.2L72.4 453.6L70.4 450.6L68.3 447.3L66.2 443.6L64.1 439.4L62.0 434.5L60.0 428.3L57.9 425.3L55.8 422.0Z"/>
|
||
<path data-shape="2" d="M55.8 354.9L57.9 344.8L60.0 337.7L62.0 316.6L64.1 310.1L66.2 305.0L68.3 300.8L70.4 297.0L72.4 293.6L74.5 290.5L76.6 287.6L78.7 284.9L80.8 282.4L82.8 279.9L84.9 277.7L87.0 275.5L89.1 273.5L91.2 271.5L93.2 269.7L95.3 267.9L97.4 266.1L99.5 264.4L101.5 262.8L103.6 261.3L105.7 259.8L107.8 258.5L109.9 257.2L111.9 256.0L114.0 254.7L116.1 253.6L118.2 252.4L120.3 251.3L122.3 250.3L124.4 249.3L126.5 248.4L128.6 247.5L130.7 246.6L132.7 245.8L134.8 245.1L136.9 244.3L139.0 243.6L141.1 242.9L143.1 242.2L145.2 241.5L147.3 240.9L149.4 240.3L151.5 239.7L153.5 239.2L155.6 238.7L157.7 238.2L159.8 237.8L161.9 237.4L163.9 237.0L166.0 236.7L168.1 236.3L170.2 236.0L172.3 235.7L174.3 235.4L176.4 235.2L178.5 235.0L180.6 234.8L182.6 234.6L184.7 234.5L186.8 234.4L188.9 234.3L191.0 234.3L193.0 234.3L195.1 234.3L197.2 234.3L199.3 234.3L201.4 234.4L203.4 234.5L205.5 234.6L207.6 234.8L209.7 235.0L211.8 235.2L213.8 235.4L215.9 235.7L218.0 236.0L220.1 236.3L222.2 236.7L224.2 237.1L226.3 237.5L228.4 238.0L230.5 238.5L232.6 239.0L234.6 239.6L236.7 240.2L238.8 240.8L240.9 241.6L243.0 242.4L245.0 243.1L247.1 243.9L249.2 244.8L251.3 245.7L253.4 246.7L255.4 247.8L257.5 248.9L259.6 250.1L261.7 251.3L263.7 252.7L265.8 254.0L267.9 255.4L270.0 256.9L272.1 258.5L274.1 260.3L276.2 262.1L278.3 264.1L280.4 266.1L282.5 268.2L284.5 270.4L286.6 272.8L288.7 275.3L290.8 278.1L292.9 281.0L294.9 284.2L297.0 287.6L299.1 291.2L301.2 295.2L303.3 299.8L305.3 305.0L307.4 311.3L309.5 329.6L311.6 347.5L313.7 365.1L315.7 382.1L317.8 396.1L318.9 397.7L318.9 419.8L317.8 422.9L315.7 425.8L313.7 431.4L311.6 436.8L309.5 441.2L307.4 445.3L305.3 448.8L303.3 452.0L301.2 454.8L299.1 457.3L297.0 459.4L294.9 461.3L292.9 462.9L290.8 464.1L288.7 465.1L286.6 465.8L284.5 466.4L282.5 466.9L280.4 468.5L278.3 471.2L276.2 474.9L274.1 479.5L272.1 484.9L270.0 489.9L267.9 494.5L265.8 498.5L263.7 502.3L261.7 505.7L259.6 508.7L257.5 511.5L255.4 514.1L253.4 516.4L251.3 518.6L249.2 520.8L247.1 522.8L245.0 524.7L243.0 526.5L240.9 528.3L238.8 530.0L236.7 531.8L234.6 533.5L232.6 535.2L230.5 536.8L228.4 538.4L226.3 540.0L224.2 541.5L222.2 543.0L220.1 544.5L218.0 545.9L215.9 547.3L213.8 548.7L211.8 550.1L209.7 551.5L207.6 552.8L205.5 554.1L203.4 555.3L201.4 556.6L199.3 557.8L197.2 558.9L195.1 560.0L193.0 561.2L191.0 562.3L188.9 563.4L186.8 564.5L184.7 565.5L182.6 566.5L180.6 567.4L178.5 568.3L176.4 569.2L174.3 570.0L172.3 570.8L170.2 571.6L168.1 572.3L166.0 573.0L163.9 573.7L161.9 574.3L159.8 574.9L157.7 575.4L155.6 575.9L153.5 576.3L151.5 576.7L149.4 577.0L147.3 577.3L145.2 577.5L143.1 577.7L141.1 577.7L139.0 577.7L136.9 577.7L134.8 577.5L132.7 577.2L130.7 576.8L128.6 576.3L126.5 575.6L124.4 574.7L122.3 573.7L120.3 572.5L118.2 571.2L116.1 569.6L114.0 567.9L111.9 566.0L109.9 563.8L107.8 561.6L105.7 559.0L103.6 556.3L101.5 553.4L99.5 550.4L97.4 547.0L95.3 543.7L93.2 540.1L91.2 536.5L89.1 532.8L87.0 529.1L84.9 525.3L82.8 521.4L80.8 517.5L78.7 513.4L76.6 509.2L74.5 505.0L72.4 500.5L70.4 495.8L68.3 490.7L66.2 485.3L64.1 478.7L62.0 466.5L60.0 453.6L57.9 447.0L55.8 438.2Z"/>
|
||
</g>
|
||
</svg>
|
||
<p class="cam-status" id="cam-status">检测引擎加载中…</p>
|
||
<p class="cam-hint" id="cam-hint"></p>
|
||
<div class="cam-countdown" id="cam-countdown" aria-hidden="true" hidden></div>
|
||
<p class="cam-nudge" id="cam-nudge">识别不到?请正对镜头,并到光线充足处</p>
|
||
<div class="cam-next" id="cam-next" aria-live="polite">
|
||
<i class="cam-next-ok"></i>
|
||
<b id="cam-next-done">正脸拍摄完成</b>
|
||
<span id="cam-next-tip">准备拍摄下一张</span>
|
||
</div>
|
||
<div class="cam-guide" id="cam-guide"></div>
|
||
<video id="cam-video" autoplay playsinline muted></video>
|
||
<input type="file" id="cam-file" accept="image/*" capture="user" hidden>
|
||
<input type="file" id="album-file" accept="image/*" hidden> <!-- 相册选图(不带 capture:走图库而非调起相机) -->
|
||
<div class="cam-controls">
|
||
<button class="cam-side" data-action="album" aria-label="相册">
|
||
<img src="assets/img/ui-20261009/icon-album.png" alt="相册">
|
||
</button>
|
||
<!-- 实时检测时自动抓拍、不显示快门;仅系统相机降级/识别不可用/mock 调试时出现 -->
|
||
<button class="cam-shutter" data-action="shutter" aria-label="拍照">
|
||
<img src="assets/img/ui-20261009/icon-shutter.png" alt="快门">
|
||
</button>
|
||
<button class="cam-side cam-flip" data-action="flip" aria-label="切换">
|
||
<img src="assets/img/ui-20261009/icon-switch-camera.png?v=20261013" alt="切换">
|
||
</button>
|
||
</div>
|
||
<div class="cam-fill" id="cam-fill"></div>
|
||
</section>
|
||
|
||
<!-- ═══════════ 08 报告页 ═══════════ -->
|
||
<section class="screen" id="s-report">
|
||
<div class="report-body">
|
||
<h1 class="report-title">您的肌肤状态表现</h1>
|
||
|
||
<!-- 总分卡:左环形综合评分 / 右肌肤年龄 + 与实际年龄对比 -->
|
||
<div class="card card-summary">
|
||
<div class="sum-score">
|
||
<div class="score-dial">
|
||
<svg class="ring" viewBox="0 0 120 120" aria-hidden="true">
|
||
<circle class="ring-bg" cx="60" cy="60" r="52"/>
|
||
<circle class="ring-fg" id="ring-fg" cx="60" cy="60" r="52"/>
|
||
</svg>
|
||
<div class="ring-center">
|
||
<span class="stat-value" id="stat-score"><b>--</b><i>分</i></span>
|
||
<span class="stat-label">综合评分</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="sum-age">
|
||
<span class="stat-label">生物可视年龄</span>
|
||
<div class="age-dial"><span class="stat-value stat-age" id="stat-age"><b>--</b><i>岁</i></span></div>
|
||
<span class="age-pill" id="stat-age-note" hidden></span>
|
||
</div>
|
||
|
||
<div class="card-dims">
|
||
<div class="dims-row">
|
||
<div class="dim" data-dim="firm"><span class="dim-name">紧塑力</span><span class="dim-score" id="dim-firm"><b>-</b>.-</span><i class="dim-bar"><i></i></i><em class="dim-flag">优先关注</em></div>
|
||
<div class="dim" data-dim="vita"><span class="dim-name">透亮感</span><span class="dim-score" id="dim-vita"><b>-</b>.-</span><i class="dim-bar"><i></i></i><em class="dim-flag">优先关注</em></div>
|
||
<div class="dim" data-dim="stab"><span class="dim-name">稳韧力</span><span class="dim-score" id="dim-stab"><b>-</b>.-</span><i class="dim-bar"><i></i></i><em class="dim-flag">优先关注</em></div>
|
||
</div>
|
||
<div class="dims-note" id="dims-note"><p class="dims-note-l1">近期优先关注:<b>---</b></p></div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<h2 class="dimension-title">紧塑力</h2>
|
||
<div class="card card-detail">
|
||
<div class="detail-tabs"><button class="dtab active" data-tab="0"><span class="dtab-tx">轮廓</span></button><button class="dtab" data-tab="1"><span class="dtab-tx">皱纹</span></button></div>
|
||
<div class="detail-viewport"><div class="detail-panels">
|
||
<div class="dpanel active" data-panel="0">
|
||
<div class="ditem"><div class="viz-frame contour-front-frame"><img id="ditem-img1" class="ditem-img" alt="轮廓检测图" hidden><span class="viz-missing">本次未获取轮廓检测图</span></div>
|
||
<div class="contour-sides" id="contour-sides" hidden>
|
||
<figure data-view="left" hidden><button type="button" class="contour-side-photo" aria-label="查看左脸完整大图"><img id="contour-left" alt="左脸拍摄照片"></button></figure>
|
||
<figure data-view="right" hidden><button type="button" class="contour-side-photo" aria-label="查看右脸完整大图"><img id="contour-right" alt="右脸拍摄照片"></button></figure>
|
||
</div>
|
||
<div class="ditem-text"><p class="ditem-para" id="ditem-para1">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
<div class="dpanel" data-panel="1">
|
||
<div class="ditem"><div class="viz-frame contour-front-frame"><img id="ditem-img2" class="ditem-img" alt="皱纹检测图" hidden><span class="viz-missing">本次未获取皱纹检测图</span></div>
|
||
<div class="contour-sides wrinkle-sides" id="wrinkle-sides" hidden>
|
||
<figure data-view="left" hidden><button type="button" class="wrinkle-side-photo" aria-label="查看左脸皱纹检测大图"><img id="wrinkle-left" alt="左脸皱纹检测照片"><span class="wrinkle-loading" role="status" aria-live="polite" hidden><span>皱纹标注<br>加载中…</span></span></button></figure>
|
||
<figure data-view="right" hidden><button type="button" class="wrinkle-side-photo" aria-label="查看右脸皱纹检测大图"><img id="wrinkle-right" alt="右脸皱纹检测照片"><span class="wrinkle-loading" role="status" aria-live="polite" hidden><span>皱纹标注<br>加载中…</span></span></button></figure>
|
||
</div>
|
||
<p class="wrinkle-layer-note" id="wrinkle-layer-note" hidden>部分侧脸未获取皱纹标注,未标注的侧脸仅展示原图。</p>
|
||
<div class="ditem-text"><p class="ditem-para" id="ditem-para2">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
<h2 class="dimension-title">透亮感</h2>
|
||
<div class="card card-detail">
|
||
<div class="detail-tabs"><button class="dtab active" data-tab="0"><span class="dtab-tx">肤色</span></button><button class="dtab" data-tab="1"><span class="dtab-tx">平滑度</span></button><button class="dtab" data-tab="2"><span class="dtab-tx">水分</span></button></div>
|
||
<div class="detail-viewport"><div class="detail-panels">
|
||
<div class="dpanel active" data-panel="0">
|
||
<div class="ditem"><div class="viz-frame"><img id="viz-tone" class="ditem-img" alt="肤色检测图" hidden><span class="viz-missing">本次未获取肤色检测图</span></div>
|
||
<div class="ditem-text"><p class="ditem-para" id="tx-tone">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
<div class="dpanel" data-panel="1">
|
||
<div class="ditem"><div class="viz-frame"><img id="viz-smooth" class="ditem-img" alt="平滑度检测图" hidden><span class="viz-missing">本次未获取平滑度检测图</span></div>
|
||
<div class="ditem-text"><p class="ditem-para" id="tx-smooth">检测完成后显示分析结果。</p></div></div>
|
||
<p class="viz-caption" id="smooth-map-note"></p>
|
||
</div>
|
||
<div class="dpanel" data-panel="2">
|
||
<div class="ditem"><div class="viz-frame"><img id="viz-water" class="ditem-img" alt="水分检测图" hidden><span class="viz-missing">本次未获取水分检测图</span></div>
|
||
<div class="ditem-text"><p class="ditem-para" id="tx-water">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
<h2 class="dimension-title dimension-stability-title">稳韧力</h2>
|
||
<div class="card card-detail stability-card">
|
||
<div class="detail-tabs"><button class="dtab active" data-tab="0"><span class="dtab-tx">泛红</span></button><button class="dtab" data-tab="1"><span class="dtab-tx">痘痘</span></button></div>
|
||
<div class="detail-viewport"><div class="detail-panels">
|
||
<div class="dpanel active" data-panel="0">
|
||
<div class="ditem"><div class="viz-frame"><img id="viz-sens" class="ditem-img" alt="泛红检测图" hidden><span class="viz-missing">本次未获取泛红检测图</span></div>
|
||
<div class="ditem-text"><p class="ditem-para" id="tx-sens">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
<div class="dpanel" data-panel="1">
|
||
<div class="ditem"><div class="viz-frame"><img id="viz-acne" class="ditem-img" alt="痘痘检测图" hidden><span class="viz-missing">本次未获取痘痘检测图</span></div>
|
||
<div class="ditem-text"><p class="ditem-para" id="tx-acne">检测完成后显示分析结果。</p></div></div>
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
<p class="vm-notes" id="vm-notes" style="display:none"></p>
|
||
|
||
<h2 class="prod-title">感受高光时刻<br>从日常的好状态开始</h2>
|
||
<div class="card card-care report-care-products">
|
||
<h2 class="card-heading">日常护理</h2>
|
||
<div id="care-list">
|
||
<p class="care-item">检测完成后显示分析结果。</p>
|
||
</div>
|
||
<h2 class="product-section-heading">推荐产品</h2>
|
||
<p id="product-unavailable" class="care-item" hidden>本次未获取有效肌龄,暂无法推荐产品,建议重新检测。</p>
|
||
<div class="card-product">
|
||
<div class="prod-card">
|
||
<div class="prod-info">
|
||
<h3 id="product-title"></h3>
|
||
<p class="prod-name" id="product-name"></p>
|
||
<img class="prod-badge" src="assets/img/ui-20261015/product-badge.png" alt="1’me">
|
||
</div>
|
||
<div class="prod-scroll" id="prod-scroll">
|
||
<img id="product-image" alt="算法推荐精华">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<p class="report-disclaimer">*您的肌肤状态会随年龄、环境、作息和生活节奏动态变化。<br>*本次检测仅代表当前肌肤状态参考。<br>*仅根据您最近的测肤记录推荐。</p>
|
||
|
||
</div>
|
||
</section>
|
||
|
||
<!-- ═══════════ 弹窗:隐私授权 ═══════════ -->
|
||
<div class="overlay" id="p-privacy">
|
||
<div class="popup">
|
||
<button class="popup-close" data-action="close-privacy" aria-label="关闭">
|
||
<img src="assets/img/ui-20261009/icon-close.png" alt="关闭">
|
||
</button>
|
||
<h2 class="popup-title">欢迎体验1'me<br>肌肤状态评估服务!</h2>
|
||
<p class="popup-body">我们将采集您的面部影像,为您生成专属肌肤分析与状态管理方案。所有数据严格保密,仅用于本次检测分析。</p>
|
||
<label class="privacy-row" id="privacy-row">
|
||
<span class="checkbox" id="privacy-check"></span>
|
||
<span class="privacy-text">我已阅读并同意相关<a class="privacy-link" id="privacy-policy-link">隐私协议</a></span>
|
||
</label>
|
||
<button class="btn btn-primary popup-btn" data-action="agree-continue">继续</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ═══════════ 弹窗:拍照引导 ═══════════ -->
|
||
<!-- 背景只保留启动页底图 + Slogan(不叠档案表单),对齐设计稿 04 -->
|
||
<div class="overlay overlay-guide" id="p-photoguide">
|
||
<div class="guide-bg">
|
||
<div class="splash-slogan splash-slogan-updated" role="img" aria-label="1'me,FROM THE INSIDE OUT;以我为始 自有表现">
|
||
<img class="splash-slogan-copy" src="assets/img/ui-20261012/splash-slogan.png" width="718" height="217" loading="lazy" alt="">
|
||
<span class="splash-slogan-brand" aria-hidden="true">1'me,</span>
|
||
<span class="splash-slogan-english" aria-hidden="true">FROM THE INSIDE OUT</span>
|
||
</div>
|
||
</div>
|
||
<div class="popup">
|
||
<button class="popup-close" data-action="close-photoguide" aria-label="关闭">
|
||
<img src="assets/img/ui-20261009/icon-close.png" alt="关闭">
|
||
</button>
|
||
<h2 class="popup-title popup-title-center">请拍摄或上传<br>正面及左右侧面照片</h2>
|
||
<p class="guide-description"><span>为使测试结果更准确,请关闭美颜/滤镜、并确</span><br><span>保光线充足均匀。</span></p>
|
||
<button class="btn btn-primary popup-btn" data-action="start-camera">开始</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ═══════════ 弹层:报告检测图放大(点击任意处返回) ═══════════ -->
|
||
<div class="overlay overlay-zoom" id="p-zoom">
|
||
<img id="zoom-img" alt="检测图放大">
|
||
</div>
|
||
|
||
<!-- ═══════════ 弹层:隐私政策与服务协议(全文) ═══════════ -->
|
||
<div class="overlay overlay-policy" id="p-policy">
|
||
<div class="policy-page">
|
||
<button class="nav-back policy-float-back" data-action="close-policy" aria-label="返回"><i class="chev left"></i></button>
|
||
<div class="policy-body">
|
||
<h1 class="policy-title">Face⁺⁺个人信息与隐私保护政策</h1>
|
||
|
||
<h2 class="policy-h2">前言</h2>
|
||
<p>北京旷视科技有限公司及其关联公司(以下简称<strong>“我们”或“旷视”</strong>)尊重并致力于保护个人信息与隐私。Face⁺⁺人工智能开放平台(以下简称“本平台”)和/或Face⁺⁺人工智能开放平台服务(以下简称“本服务”)作为旷视面向开发者的视觉智能开放平台与服务,严格参照《旷视个人信息与隐私保护政策》(以下简称“《旷视政策》”)中的统一要求和标准处理相关个人信息;为进一步明确在本平台和本服务中可能涉及的个人信息处理实践情况,我们特制定了Face⁺⁺个人信息与隐私保护政策(以下简称<strong>“Face⁺⁺政策”</strong>),以介绍本平台和本服务中收集、使用、留存等个人信息的具体处理。</p>
|
||
<p>请注意,Face⁺⁺政策并未完整包含旷视在个人信息与隐私保护方面的所有措施与努力。我们承诺严格遵守适用法律法规和监管要求,并高度尊重您的个人信息相关合法权利,为完整了解我们的基本信息、我们的个人信息与隐私保护原则等相关内容,请同时阅读《旷视政策》。</p>
|
||
<p>此外,在基于本平台和/或本服务进一步开发、提供的特定业务场景,我们的客户(以下简称<strong>“客户”</strong>)或我们可能另行向终端个人用户(以下简称<strong>“用户”或“您”</strong>)提供具体的隐私政策或同类法律文本,请同时完整阅读该等业务场景下的隐私政策或同类法律文本,以确保您能充分知悉有关个人信息处理的完整实践。Face⁺⁺政策仅适用于旷视提供的本平台和本服务,并完全独立于我们的客户或任何第三方可能或需要向您展示或提供的隐私政策或同类法律文本。</p>
|
||
<p>Face⁺⁺政策拟帮助客户和用户了解以下内容:</p>
|
||
<ol class="policy-toc">
|
||
<li>我们如何收集使用个人信息</li>
|
||
<li>我们如何保留和披露您的个人信息</li>
|
||
<li>我们如何保护您的个人信息</li>
|
||
<li>个人信息在全球范围内的转移</li>
|
||
<li>您的个人信息权利</li>
|
||
<li>我们如何处理儿童的个人信息</li>
|
||
<li>如何联系我们</li>
|
||
<li>Face⁺⁺政策如何更新</li>
|
||
</ol>
|
||
<p>Face⁺⁺政策中,“个人信息”指以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如无其他说明,Face⁺⁺政策下的其他相关定义和术语具有与《网络安全法》《个人信息保护法》《信息安全技术个人信息安全规范》等法律法规、规范性文件、国家标准中相同的含义。</p>
|
||
|
||
<h2 class="policy-h2">一、我们如何收集使用个人信息</h2>
|
||
<p>旷视在不同的业务场景下,将与客户开展多种多样的业务合作。我们将与客户、供应商一道,在符合《个人信息保护法》第十三条规定的合法性基础(包括取得您的同意,或存在法律法规规定不需取得个人同意的其他情形)的前提下,确保所收集和处理的个人信息已取得您的完整、有效授权同意。仅存在下列法律法规规定不需取得个人同意的情形时,方可不经您的同意处理您的个人信息:</p>
|
||
<ul>
|
||
<li>与履行法律法规规定的义务相关的;</li>
|
||
<li>与国家安全、国防安全直接相关的;</li>
|
||
<li>与公共安全、公共卫生、重大公共利益直接相关的;</li>
|
||
<li>与刑事侦查、起诉、审判和判决执行等直接相关的;</li>
|
||
<li>出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的;</li>
|
||
<li>所涉及的个人信息是您自行向社会公众公开的;</li>
|
||
<li>根据您的要求签订和履行合同所必需的;</li>
|
||
<li>从合法公开披露的信息中收集个人信息的,如合法的新闻报道、政府信息公开、合法的公开数据集等渠道;</li>
|
||
<li>维护所提供产品或服务的安全稳定运行所必需的,例如发现、处置产品或服务的故障;</li>
|
||
<li>新闻单位开展合法的新闻报道所必需的;</li>
|
||
<li>学术研究机构出于公共利益开展统计或学术研究所必要,且对外提供学术研究或描述的结果时,对结果中所包含的个人信息进行去标识化处理的。</li>
|
||
</ul>
|
||
<h3 class="policy-h3">1. 我们收集哪些个人信息及使用目的</h3>
|
||
<p>就本平台和本服务而言,我们将与客户共同收集、使用您的相关个人信息。我们与客户作为共同个人信息处理者,已依法约定各自的权利和义务;如因共同处理您的个人信息侵害您的个人信息权益造成损害,您可以向我们或客户中的任何一方主张行使本政策第五条所列的权利。主要包括:</p>
|
||
<p><strong>1) Face⁺⁺账号注册和登录</strong></p>
|
||
<p>为完成Face⁺⁺账号注册和登录过程,我们将收集用于注册的用户名、手机号(使用手机号码注册或后续您主动填写)、邮箱地址(使用邮箱注册或后续您主动填写)、微信账号信息(使用微信注册);请注意,该等注册和登录过程是使用本平台和/或本服务的前提之一,如拒绝提供该等信息将无法正常注册、登录和/或使用本平台和本服务。</p>
|
||
<p>此外,如您选择使用FaceID等其他旷视账号登录本平台,我们也将收集您的相关账号、密码等用于完成登录过程的身份核验。</p>
|
||
<p><strong>2) 人脸和人体图像识别相关技术应用</strong></p>
|
||
<p>为提供人脸和人体图像识别相关技术的能力,我们将基于客户主动提供的原始图片、视频等数据进一步识别和提取<strong>面部识别特征、人体区域、人体特征和关键点、手势等生物识别信息,</strong>用于实现人脸比对、人脸检测、人脸搜索、人脸美颜、人脸融合等具体功能。请您理解,本平台和本服务作为旷视人工智能能力开放的一部分,如您拒绝提供原始图片、视频等数据,前述功能应用将无法实现。</p>
|
||
<p>提请您注意的是,该等功能项下处理的面部识别特征等生物识别信息属于个人敏感信息,只有在具有特定的目的和充分的必要性、并采取严格保护措施的情形下,我们才会进行处理。我们将依法向您单独告知处理该等敏感个人信息的必要性以及对您个人权益的影响,并在您通过弹窗、勾选等明示方式单独同意后,方进行该等处理;您拒绝单独同意的,我们将不处理您的上述生物识别信息,但不影响您使用本平台和本服务的其他功能。就您直接使用的特定产品和/或服务场景下如何收集使用生物识别信息的具体规则(通常由我们的客户向您说明),请您一并仔细了解后再行决定。</p>
|
||
<p><strong>3) 其他图像和文字识别技术应用</strong></p>
|
||
<p>为提供其他图像和文字识别相关技术的能力,我们也将基于客户主动提供的原始图片等数据进一步识别和提取<strong>证件信息(如身份证、驾驶证、行驶证等证件上的照片与文字信息)、银行卡信息(如银行卡照片上的银行卡号、卡片边框坐标等)</strong>及其他文字、非文字信息,用于实现证件识别、通用文字识别、车牌识别、物体识别等具体功能。该等功能项下处理的证件信息、银行卡信息等个人身份信息和个人财产信息属于个人敏感信息,只有在具有特定的目的和充分的必要性、并采取严格保护措施的情形下,我们才会进行处理。我们将依法向您单独告知处理该等敏感个人信息的必要性以及对您个人权益的影响,并在您通过弹窗、勾选等明示方式单独同意后,方进行该等处理;您拒绝单独同意的,我们将不处理该等敏感个人信息,但不影响您使用本平台和本服务的其他功能。</p>
|
||
<p>特别地,根据国家APP合规治理相关要求,本平台相关SDK产品的具体信息如下表所示,如您是使用了相关SDK产品的APP/小程序开发者,您需要通过隐私政策或同类法律文本向终端用户履行相关告知义务,并确保相关APP/小程序收集使用个人信息遵循合法、正当、必要和诚信的基本原则。</p>
|
||
<h3 class="policy-h3">2. 有关Cookie的特别声明</h3>
|
||
<p>Cookie是网站、应用程序或服务传输并存储在您设备上的小文件,如互联网上绝大多数网站一样,我们向您发送Cookies主要是为了简化您重复登录的步骤、存储您的偏好、帮助您判断账户或数据安全,或者自动记录某些信息(如互联网协议IP地址、浏览器类型、互联网服务提供商ISP、网页浏览数、引荐网页、日期/时间戳、点击流数据等)以分析、管理我们的网站。关于我们使用Cookie的更多详情,请参阅《旷视政策》。</p>
|
||
|
||
<h2 class="policy-h2">二、我们如何保留和披露您的个人信息</h2>
|
||
<p>除法律法规另有规定外,我们将在实现处理目的所必要的最短时间内保留您的个人信息,并通过本政策或相关服务规则向您明确告知各类个人信息的具体保存期限;对确实无法事先明确具体保存期限的个人信息,我们将向您告知确定其保存期限的标准。</p>
|
||
<p>在本平台和本服务下,我们主要提供技术能力的具体应用,因此在具体功能实现后,对于客户提供的原始图片、视频等数据以及基于该等原始数据形成的服务成果,我们将尽快删除或进行匿名化处理。</p>
|
||
<p><strong>特别地,在人脸搜索、相册聚类等相关功能下,我们可能为客户提供存储功能;在该等功能下,客户将自行决定是否存储、在多长期限内存储图像和图像集。</strong>如客户进行删除操作、要求我们删除或服务期限届满,除非适用的法律法规有明确要求,我们会及时将您的个人信息进行彻底删除或匿名化处理。</p>
|
||
<p>此外,根据《网络安全法》等强制性法律法规要求,我们将切实保留网络日志不少于六个月。</p>
|
||
<p>为此,除非适用的法律法规或监管规定明确要求,或存在其他《旷视政策》中明确的披露场景,我们不会以任何形式、出于任何目的对除客户以外的外部第三方共享和披露本平台/本服务下涉及的个人信息。</p>
|
||
|
||
<h2 class="policy-h2">三、我们如何保护您的个人信息</h2>
|
||
<p>我们已采取了合理、可行的管理措施和技术措施,以保护所处理的个人信息并应对个人信息安全事件,请参见《旷视政策》以了解更多的措施。但是请注意,虽然我们采取了合理的措施保护您的个人信息,但没有任何网站、Internet传输、计算机系统或无线连接是绝对安全的。</p>
|
||
<p>具体而言,本平台和本服务下,我们用以保护您提供的个人信息的主要安全防护措施包括但不限于:</p>
|
||
<ol>
|
||
<li>我们会在可行的情况下及时将您的个人信息进行去标识化处理,从而降低其他组织或个人重新识别到您的风险;</li>
|
||
<li>我们会定期审查个人信息处理的方式(包括物理性安全措施),并不断强化API和SDK等技术工具的安全性;</li>
|
||
<li>我们将不断努力保障您的个人信息安全,并实施传输全程安全加密等保障手段,以免您的个人信息在未经授权的情况下被访问、使用或披露。</li>
|
||
</ol>
|
||
<p>如发生或者可能发生您的个人信息泄露、篡改、丢失的,我们将立即采取补救措施,并按照法律法规要求及时通知履行个人信息保护职责的部门和您本人。通知将包括发生或者可能发生泄露、篡改、丢失的信息种类、原因和可能造成的危害,我们已采取的补救措施以及您可以采取的减轻危害的措施,以及我们的联系方式;我们采取措施能够有效避免信息泄露、篡改、丢失造成危害的,按照法律法规的规定可以不通知您。</p>
|
||
|
||
<h2 class="policy-h2">四、个人信息在全球范围内的转移</h2>
|
||
<p>我们的服务器位于中国和加拿大。由于中国法律法规要求,原则上,在中国境内收集和产生的个人信息将统一在中国境内服务器进行处理。对于中国境外的业务,我们的客户将自行决定支持的服务器;根据我们客户的选择,您的个人信息将从您所处的司法辖区转移至位于中国或加拿大的服务器上进行处理。</p>
|
||
<p>如确有必要向境外提供您的个人信息,我们将遵守《个人信息保护法》及数据出境相关法律法规的规定,依法通过国家网信部门组织的数据出境安全评估,或与境外接收方订立个人信息出境标准合同,或通过个人信息保护认证,并采取必要措施保障境外接收方的处理活动达到法律规定的个人信息保护标准。向境外提供前,我们将向您告知境外接收方的名称或者姓名、联系方式、处理目的、处理方式、个人信息的种类以及您向境外接收方行使个人信息权利的方式和程序等事项,并取得您的单独同意;涉及敏感个人信息出境的,我们还将向您告知出境的必要性以及对您个人权益的影响。</p>
|
||
|
||
<h2 class="policy-h2">五、您的个人信息权利</h2>
|
||
<p>我们高度尊重您依法享有的个人信息相关合法权利。以下我们列出了您的权利,以及我们将如何保护这些权利。请注意,针对具体的请求,出于安全考虑,在处理您的请求前,我们可能需要先行验证您的身份。</p>
|
||
<ol>
|
||
<li><strong>知情权:</strong>我们致力于提升个人信息处理的透明性,并将通过Face⁺⁺政策及其他相关法律文本向您告知我们如何处理您的个人信息。</li>
|
||
<li><strong>访问权:</strong>您有权访问您的个人信息。</li>
|
||
<li><strong>更正权:</strong>当您发现我们处理的关于您的个人信息有错误时,您有权要求我们做出更正。</li>
|
||
<li><strong>删除权:</strong>若我们没有合法理由继续持有并处理您的信息,您可以向我们要求删除您的个人信息,我们将及时按照您的要求予以删除。</li>
|
||
<li><strong>注销账户:</strong>如您是通过注册或任何可用的方式获取我们提供的账户而使用相关产品或服务的,您可通过具体的产品或服务场景下向您提供的注销账户渠道提交注销申请,我们将及时完成核查和处理。</li>
|
||
<li><strong>拒绝自动决策权:</strong>您有权不受制于全自动处理作出的决定,包括用户画像。若这些决定显著影响您的合法权利,您有权要求解释。</li>
|
||
<li><strong>解释权:</strong>您有权要求我们对您的个人信息处理规则进行解释说明。</li>
|
||
<li><strong>可携权:</strong>在符合国家网信部门规定条件且技术可行的前提下,您可请求将个人信息转移至指定的处理者,如您确有需要,请您提前与我们联系以确认是否符合前述条件及转移的具体途径。</li>
|
||
<li><strong>查询权:</strong>您有权查询您的个人信息。如您确有需要的,在符合相关规定条件的前提下,您也可联系我们获取您的个人信息副本。</li>
|
||
<li><strong>撤销权:</strong>每个功能模块需要一些基本的个人信息才能得以完成,当您撤销同意或授权后,我们无法继续为您提供撤回同意或授权所对应的服务,也将不再处理您相应的个人信息。但您撤回同意或授权的决定,不会影响此前基于您的同意或授权而开展的个人信息处理。</li>
|
||
</ol>
|
||
<p>我们为您提供便捷的撤回同意方式:您可以通过具体产品或服务中设置的权限管理或隐私设置功能直接撤回相应授权,也可以通过发送邮件至我们的联系邮箱business@megvii.com或本政策公布的其他联系方式提交撤回申请。我们将在核实您的身份后及时处理您的撤回请求,撤回同意不影响撤回前基于您的同意已进行的个人信息处理活动的效力。</p>
|
||
<p>如我们未能及时响应您的请求,或您对于我们的答复有任何异议,您可通过本政策内的联系方式向我们投诉或向相关监管部门申诉。</p>
|
||
|
||
<h2 class="policy-h2">六、我们如何处理儿童的个人信息</h2>
|
||
<p><strong>请您注意,我们的所有产品、网站和服务主要面向企业客户,我们并不会自行主动收集、处理儿童个人信息。</strong>如任何客户或用户希望或意图向我们提供或要求我们处理儿童的个人信息,请务必确保已严格按照《个人信息保护法》《儿童个人信息网络保护规定》等相关法律法规的要求,取得儿童监护人的事先同意授权。</p>
|
||
<p>如我们发现任何客户或用户在未经父母或监护人同意的情况下提供包含儿童个人信息的原始数据,我们将立即删除该等原始数据并不会就该等数据提供任何服务。为免歧义,我们将不满14周岁的任何人均视为儿童。</p>
|
||
<p>此外,我们格外重视儿童个人信息的安全、可控。我们内部已明确将儿童个人信息列为最高安全等级的数据类型,并切实采取了加密存储、严格的访问权限控制等技术和管理措施,提供额外的安全保护。</p>
|
||
<p>如因客户或用户的业务需要确需处理儿童个人信息的,我们将根据《个人信息保护法》《儿童个人信息网络保护规定》等法律法规的要求,制定并公布专门的儿童个人信息处理规则;处理儿童个人信息前取得其父母或者其他监护人的单独同意,并依法履行告知、加密存储、访问控制、个人信息保护影响评估以及按约删除等义务。</p>
|
||
|
||
<h2 class="policy-h2">七、如何联系我们</h2>
|
||
<p>如您对本政策及您的个人信息存在任何相关问题、申/投诉,或您需要任何个人信息权利相关的协助,为及时满足您的请求考虑,我们建议您向具体业务场景下的个人信息处理者(通常为我们的客户)直接提出请求,并由其视情况向我们转交。我们会在收到转交的请求后尽快进行回应。</p>
|
||
<p>如您确有需要,您可以通过向business@megvii.com发送邮件联系我们,为确保您的请求清晰、明确,请在前述邮件中提供:</p>
|
||
<ul>
|
||
<li>您的姓名(名称)和联系方式;</li>
|
||
<li>您的详细请求、意见和/或相应的链接。</li>
|
||
</ul>
|
||
<p>对于您行使本政策项下权利的合理请求,我们不收取费用;对于多次重复、超出合理限度的请求,我们将视情收取必要的成本费用,并向您说明收费的依据和标准。我们拒绝您的请求的,将向您说明理由;您对我们的处理有异议的,可以依法向履行个人信息保护职责的部门投诉、举报,或向人民法院提起诉讼。对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁带上存放的信息)的请求,我们可能会予以拒绝。</p>
|
||
<p>一般而言,我们会在15个工作日内或法律法规规定的期限内尽快回复,但以下情形除外:</p>
|
||
<ul>
|
||
<li>与履行法律法规规定的义务相关的;</li>
|
||
<li>与国家安全、国防安全直接相关的;</li>
|
||
<li>与公共安全、公共卫生、重大公共利益直接相关的;</li>
|
||
<li>与刑事侦查、起诉、审判和执行判决等直接相关的;</li>
|
||
<li>有充分证据表明您可能存在主观恶意或滥用权利的;</li>
|
||
<li>出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人授权同意的;</li>
|
||
<li>响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的;</li>
|
||
<li>涉及商业秘密的。</li>
|
||
</ul>
|
||
|
||
<h2 class="policy-h2">八、Face⁺⁺政策如何更新</h2>
|
||
<p>我们保留不时更新或修改Face⁺⁺政策的权利。但未经您明确同意,我们不会削减您按照Face⁺⁺政策所应享有的权利。处理个人信息的目的、处理方式、处理的个人信息种类发生变更的,我们将就变更部分向您告知,并重新依法取得您的同意;涉及处理敏感个人信息或向境外提供个人信息的,取得您的单独同意。您可通过本页面查看最新版本的Face⁺⁺政策。</p>
|
||
<p>对于重大变更,我们会提供更为显著的通知(包括对于某些服务,我们会通过电子邮件等方式发送通知,说明具体的变更内容)。</p>
|
||
<p>Face⁺⁺政策所指的重大变更包括但不限于:</p>
|
||
<ul>
|
||
<li>我们的服务模式发生重大变化,如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式等;</li>
|
||
<li>我们在所有权结构、组织架构等方面发生重大变化,如业务调整、破产并购等引起的所有者变更等;</li>
|
||
<li>个人信息共享、转让或公开披露的主要对象发生变化;</li>
|
||
<li>您参与个人信息处理方面的权利及其行使方式发生重大变化;</li>
|
||
<li>我们负责处理个人信息安全的责任部门、联络方式及投诉渠道发生变化时;</li>
|
||
<li>个人信息安全影响评估报告表明存在高风险时。</li>
|
||
</ul>
|
||
<p class="policy-end">—— 全文完 ——</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ═══════════ 分析中过渡 ═══════════ -->
|
||
<div class="overlay" id="p-analyzing" role="dialog" aria-modal="true" aria-label="正在生成肌肤报告">
|
||
<!-- Original visible PSD layers, including decorative album/flip icons.
|
||
Not camera controls: no action attributes, focus targets or file inputs. -->
|
||
<div class="scan-stage" aria-hidden="true">
|
||
<img id="scan-artwork" class="scan-artwork" data-src="assets/img/ui-20261012/scan-base.webp" width="1080" height="2091" alt="" draggable="false">
|
||
<div id="scan-face" class="scan-face" data-mask="assets/img/ui-20261012/scan-face-mask.png"><i class="scan-beam"></i></div>
|
||
<span class="scan-flip-icon"><img src="assets/img/ui-20261009/icon-switch-camera.png?v=20261013" width="80" height="80" alt="" draggable="false"></span>
|
||
</div>
|
||
<p class="scan-status" role="status">检测中…</p>
|
||
<button class="scan-cancel" type="button" data-action="cancel-analysis">取消</button>
|
||
</div>
|
||
|
||
<!-- ═══════════ Toast ═══════════ -->
|
||
<div class="toast" id="toast"></div>
|
||
|
||
<div class="overlay" id="p-login-success" role="dialog" aria-modal="true" aria-labelledby="login-success-title" aria-describedby="login-success-message">
|
||
<div class="popup login-success-popup">
|
||
<div class="login-success-icon" aria-hidden="true">✓</div>
|
||
<h2 id="login-success-title">登录成功</h2>
|
||
<p id="login-success-message"></p>
|
||
<button class="btn btn-primary" data-action="login-confirm">我知道了</button>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="js/head-pose.js" defer></script>
|
||
<script src="js/capture-quality.js" defer></script>
|
||
<script src="js/skin-score.js" defer></script>
|
||
<script src="vendor/mobile-select/mobile-select.iife.min.js" defer></script>
|
||
<script src="js/region-data.js" defer></script>
|
||
<script>
|
||
// 仅 ?mock=1 调试:同步注入报告页可视化 fixture(生产模式不发起该请求)
|
||
if (/[?&]mock=1/.test(location.search)) document.write('<script src="assets/mock/report-fixture.js"><\/script>');
|
||
</script>
|
||
<script src="js/report-copy.js" defer></script>
|
||
<script src="js/report-ui.js" defer></script>
|
||
<script src="js/account-client.js" defer></script>
|
||
<script src="js/profile-store.js" defer></script>
|
||
<script src="js/swipe-track.js" defer></script>
|
||
<script src="js/camera-geometry.js" defer></script>
|
||
<script src="js/app.js" defer></script>
|
||
</body>
|
||
</html>
|