{"id":9282,"date":"2025-04-29T10:10:09","date_gmt":"2025-04-29T02:10:09","guid":{"rendered":"https:\/\/xinliceyan.org\/?p=9282"},"modified":"2025-05-18T18:38:28","modified_gmt":"2025-05-18T10:38:28","slug":"ces-d","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/ces-d","title":{"rendered":"\u6d41\u884c\u75c5\u5b66\u7814\u7a76\u4e2d\u5fc3\u6291\u90c1\u91cf\u8868\uff08CES-D\uff09\uff0820\u9898\uff09"},"content":{"rendered":"<!-- \u6d41\u884c\u75c5\u5b78\u7814\u7a76\u4e2d\u5fc3\u6182\u9b31\u91cf\u8868\uff08CES-D\uff09\u6e2c\u9a57 -->\n<div id=\"cesd-quiz-container\" class=\"cesd-quiz-container\">\n  <!-- \u5f15\u5c0e\u9801 -->\n  <section id=\"cesd-intro-section\" class=\"cesd-section cesd-intro-section\">\n    <h2 class=\"cesd-title\">\u6d41\u884c\u75c5\u5b66\u7814\u7a76\u4e2d\u5fc3\u5fe7\u90c1\u91cf\u8868\uff08CES-D\uff09<\/h2>\n    <div class=\"cesd-intro-content\">\n      <div class=\"cesd-intro-header\">\n        <div class=\"cesd-intro-icon\">\n          <svg viewbox=\"0 0 24 24\" width=\"64\" height=\"64\" aria-hidden=\"true\">\n            <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" fill=\"currentColor\"><\/path>\n          <\/svg>\n        <\/div>\n        <p class=\"cesd-intro-subtitle\">\u4e13\u4e1a\u8bc4\u4f30\u60a8\u7684\u60c5\u7eea\u5065\u5eb7\u72b6\u6001<\/p>\n      <\/div>\n      <div class=\"cesd-intro-description\">\n        <p>\u6d41\u884c\u75c5\u5b66\u7814\u7a76\u4e2d\u5fc3\u5fe7\u90c1\u91cf\u8868\uff08CES-D\uff09\u662f\u7279\u522b\u4e3a\u8bc4\u4ef7\u5f53\u524d\u6291\u90c1\u75c7\u72b6\u7684\u9891\u5ea6\u800c\u8bbe\u8ba1\u7684\uff0c\u7740\u91cd\u4e8e\u6291\u90c1\u60c5\u611f\u6216\u5fc3\u5883\uff0c\u8bd5\u56fe\u7528\u4e8e\u4e0d\u540c\u65f6\u70b9\u65ad\u9762\u8c03\u67e5\u7ed3\u679c\u7684\u5bf9\u6bd4\u3002<\/p>\n        <p>\u4e0eBeck\u6291\u90c1\u91cf\u8868(BDI)\u548cZung\u6c0f\u6291\u90c1\u91cf\u8868(SDS)\u4e0d\u540c\uff0cCES-D\u4e0d\u80fd\u7528\u4e8e\u4e34\u5e8a\u76ee\u7684\uff0c\u4e0d\u80fd\u7528\u4e8e\u5bf9\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u6291\u90c1\u4e25\u91cd\u7a0b\u5ea6\u53d8\u5316\u7684\u76d1\u6d4b\u3002<\/p>\n        <p>CES-D\u5171\u670920\u4e2a\u6761\u76ee\uff0c\u4ee3\u8868\u4e86\u6291\u90c1\u75c7\u72b6\u7684\u4e3b\u8981\u65b9\u9762\uff0c\u53cd\u6620\u4e86\u6291\u90c1\u72b6\u6001\u7684\u4ee5\u4e0b\u516d\u4e2a\u4fa7\u9762\uff1a\u6291\u90c1\u5fc3\u60c5\u3001\u7f6a\u6076\u611f\u548c\u65e0\u4ef7\u503c\u611f\u3001\u65e0\u52a9\u4e0e\u65e0\u671b\u611f\u3001\u7cbe\u795e\u8fd0\u52a8\u6027\u8fdf\u6ede\u3001\u98df\u6b32\u4e27\u5931\u3001\u7761\u7720\u969c\u788d\u3002<\/p>\n      <\/div>\n      <div class=\"cesd-features\">\n        <div class=\"cesd-feature\">\n          <div class=\"cesd-feature-icon\">\n            <svg viewbox=\"0 0 24 24\" width=\"32\" height=\"32\" aria-hidden=\"true\">\n              <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\" fill=\"currentColor\"><\/path>\n            <\/svg>\n          <\/div>\n          <p>\u5feb\u901f\u8bc4\u4f30<\/p>\n        <\/div>\n        <div class=\"cesd-feature\">\n          <div class=\"cesd-feature-icon\">\n            <svg viewbox=\"0 0 24 24\" width=\"32\" height=\"32\" aria-hidden=\"true\">\n              <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\" fill=\"currentColor\"><\/path>\n            <\/svg>\n          <\/div>\n          <p>\u4e13\u4e1a\u53c2\u8003<\/p>\n        <\/div>\n        <div class=\"cesd-feature\">\n          <div class=\"cesd-feature-icon\">\n            <svg viewbox=\"0 0 24 24\" width=\"32\" height=\"32\" aria-hidden=\"true\">\n              <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z\" fill=\"currentColor\"><\/path>\n            <\/svg>\n          <\/div>\n          <p>\u89c6\u89c9\u5316\u7ed3\u679c<\/p>\n        <\/div>\n      <\/div>\n      <button id=\"cesd-start-button\" class=\"cesd-button cesd-start-button\" aria-label=\"\u5f00\u59cb\u6d4b\u9a8c\">\n        \u5f00\u59cb\u6d4b\u9a8c\n      <\/button>\n    <\/div>\n  <\/section>\n\n  <!-- \u6e2c\u9a57\u9801 -->\n  <section id=\"cesd-quiz-section\" class=\"cesd-section cesd-quiz-section\" aria-live=\"polite\" style=\"display: none;\">\n    <h2 class=\"cesd-title\">\u6d41\u884c\u75c5\u5b66\u7814\u7a76\u4e2d\u5fc3\u5fe7\u90c1\u91cf\u8868\uff08CES-D\uff09<\/h2>\n    <div class=\"cesd-quiz-content\">\n      <div class=\"cesd-progress-container\">\n        <div class=\"cesd-progress-text\">\u95ee\u9898 <span id=\"cesd-current-question\">1<\/span>\/<span id=\"cesd-total-questions\">20<\/span><\/div>\n        <div class=\"cesd-progress-bar\">\n          <div class=\"cesd-progress-fill\" id=\"cesd-progress-fill\"><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"cesd-instructions\">\n        <p>\u4e0b\u9762\u662f\u5bf9\u60a8\u53ef\u80fd\u5b58\u5728\u7684\u6216\u6700\u8fd1\u6709\u8fc7\u7684\u611f\u53d7\u7684\u63cf\u8ff0\uff0c\u8bf7\u544a\u8bc9\u6211<strong>\u6700\u8fd1\u4e00\u5468<\/strong>\u6765\u60a8\u51fa\u73b0\u8fd9\u79cd\u611f\u53d7\u7684\u9891\u5ea6\u3002<\/p>\n      <\/div>\n      <div id=\"cesd-question-container\" class=\"cesd-question-container\">\n        <!-- Questions will be dynamically inserted here -->\n      <\/div>\n      <div class=\"cesd-navigation\">\n        <button id=\"cesd-prev-button\" class=\"cesd-button cesd-prev-button\" aria-label=\"\u4e0a\u4e00\u9898\" disabled>\u4e0a\u4e00\u9898<\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u7d50\u679c\u9801 -->\n  <section id=\"cesd-results-section\" class=\"cesd-section cesd-results-section\" aria-live=\"polite\" style=\"display: none;\">\n    <h2 class=\"cesd-title\">\u6d4b\u9a8c\u7ed3\u679c<\/h2>\n    <div class=\"cesd-results-content\">\n      <div class=\"cesd-results-summary\" id=\"cesd-results-summary\">\n        <!-- Results summary will be inserted here -->\n      <\/div>\n      <div class=\"cesd-chart-container\">\n        <canvas id=\"cesd-results-chart\" aria-label=\"\u5fe7\u90c1\u7a0b\u5ea6\u89c6\u89c9\u5316\" role=\"img\"><\/canvas>\n      <\/div>\n      <div class=\"cesd-results-details\" id=\"cesd-results-details\">\n        <!-- Detailed results will be inserted here -->\n      <\/div>\n      <div class=\"cesd-disclaimer\">\n        <p>\u6ce8\uff1a\u672c\u6d4b\u9a8c\u7ed3\u679c\u4ec5\u4f9b\u53c2\u8003\uff0c\u4e0d\u6784\u6210\u533b\u7597\u8bca\u65ad\u3002\u5982\u6709\u5fc3\u7406\u5065\u5eb7\u95ee\u9898\uff0c\u8bf7\u54a8\u8be2\u4e13\u4e1a\u5fc3\u7406\u5e08\u6216\u7cbe\u795e\u79d1\u533b\u5e08\u3002<\/p>\n      <\/div>\n      <button id=\"cesd-restart-button\" class=\"cesd-button cesd-restart-button\" aria-label=\"\u91cd\u65b0\u6d4b\u9a8c\">\n        \u91cd\u65b0\u6d4b\u9a8c\n      <\/button>\n    <\/div>\n  <\/section>\n<\/div>\n\n<!-- \u8f09\u5165 Chart.js -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n\n<style>\n  \/* \u6d41\u884c\u75c5\u5b78\u7814\u7a76\u4e2d\u5fc3\u6182\u9b31\u91cf\u8868\u6e2c\u9a57\u6a23\u5f0f *\/\n  :root {\n    \/* \u984f\u8272\u8b8a\u6578 *\/\n    --cesd-primary: #5b6bb8;\n    --cesd-primary-light: #7984c7;\n    --cesd-primary-dark: #4a5a9e;\n    --cesd-secondary: #61c9a8;\n    --cesd-secondary-light: #83d7bc;\n    --cesd-secondary-dark: #4fb696;\n    --cesd-neutral-100: #ffffff;\n    --cesd-neutral-200: #f8f9fc;\n    --cesd-neutral-300: #eef0f7;\n    --cesd-neutral-400: #d4d9e8;\n    --cesd-neutral-500: #a6adc8;\n    --cesd-neutral-600: #7c85a8;\n    --cesd-neutral-700: #5d6788;\n    --cesd-neutral-800: #3e4868;\n    --cesd-neutral-900: #252d48;\n    --cesd-danger: #e05d65;\n    --cesd-warning: #f2a365;\n    --cesd-success: #4caf93;\n    \n    \/* \u6392\u7248\u8b8a\u6578 *\/\n    --cesd-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    --cesd-border-radius: 8px;\n    --cesd-transition: all 0.3s ease;\n    --cesd-box-shadow: 0 4px 6px rgba(59, 68, 120, 0.08), 0 1px 3px rgba(59, 68, 120, 0.1);\n    --cesd-box-shadow-hover: 0 6px 12px rgba(59, 68, 120, 0.12), 0 3px 6px rgba(59, 68, 120, 0.15);\n  }\n\n  \/* \u57fa\u672c\u6a23\u5f0f *\/\n  .cesd-quiz-container {\n    font-family: var(--cesd-font-family);\n    color: var(--cesd-neutral-800);\n    max-width: 800px;\n    margin: 0 auto;\n    padding: 16px;\n    box-sizing: border-box;\n    line-height: 1.6;\n  }\n\n  .cesd-quiz-container * {\n    box-sizing: border-box;\n  }\n\n  .cesd-section {\n    background-color: var(--cesd-neutral-100);\n    border-radius: var(--cesd-border-radius);\n    box-shadow: var(--cesd-box-shadow);\n    padding: 32px 24px;\n    margin-bottom: 32px;\n    transition: var(--cesd-transition);\n  }\n\n  .cesd-title {\n    font-size: 28px;\n    font-weight: 700;\n    text-align: center;\n    margin: 0 0 24px 0;\n    color: var(--cesd-primary-dark);\n  }\n\n  \/* \u5f15\u5c0e\u9801\u6a23\u5f0f *\/\n  .cesd-intro-content {\n    display: flex;\n    flex-direction: column;\n    gap: 32px;\n  }\n\n  .cesd-intro-header {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 16px;\n    margin-bottom: 8px;\n  }\n\n  .cesd-intro-icon {\n    width: 88px;\n    height: 88px;\n    border-radius: 50%;\n    background: linear-gradient(135deg, var(--cesd-primary-light), var(--cesd-primary-dark));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--cesd-neutral-100);\n    box-shadow: 0 8px 16px rgba(91, 107, 184, 0.25);\n    margin-bottom: 8px;\n  }\n\n  .cesd-intro-subtitle {\n    font-size: 22px;\n    font-weight: 600;\n    color: var(--cesd-primary);\n    margin: 0;\n    text-align: center;\n  }\n\n  .cesd-intro-description p {\n    margin-bottom: 16px;\n    font-size: 16px;\n    line-height: 1.7;\n  }\n\n  .cesd-intro-description p:last-child {\n    margin-bottom: 0;\n  }\n\n  .cesd-features {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 32px;\n    margin: 8px 0 16px;\n  }\n\n  .cesd-feature {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n    width: 120px;\n    text-align: center;\n  }\n\n  .cesd-feature-icon {\n    width: 64px;\n    height: 64px;\n    border-radius: 50%;\n    background-color: rgba(91, 107, 184, 0.1);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--cesd-primary);\n    transition: var(--cesd-transition);\n  }\n\n  .cesd-feature:hover .cesd-feature-icon {\n    background-color: rgba(91, 107, 184, 0.15);\n    transform: translateY(-2px);\n  }\n\n  .cesd-feature p {\n    margin: 0;\n    font-weight: 500;\n    font-size: 16px;\n  }\n\n  \/* \u6309\u9215\u6a23\u5f0f *\/\n  .cesd-button {\n    background: linear-gradient(135deg, var(--cesd-primary-light), var(--cesd-primary));\n    color: var(--cesd-neutral-100);\n    border: none;\n    border-radius: var(--cesd-border-radius);\n    padding: 12px 24px;\n    font-size: 18px;\n    font-weight: 600;\n    cursor: pointer;\n    transition: var(--cesd-transition);\n    box-shadow: 0 2px 4px rgba(59, 68, 120, 0.15);\n    min-height: 48px;\n    min-width: 120px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n  }\n\n  .cesd-button:hover, .cesd-button:focus {\n    background: linear-gradient(135deg, var(--cesd-primary), var(--cesd-primary-dark));\n    box-shadow: var(--cesd-box-shadow-hover);\n    transform: translateY(-2px);\n  }\n\n  .cesd-button:disabled {\n    background: var(--cesd-neutral-400);\n    cursor: not-allowed;\n    transform: none;\n    box-shadow: none;\n  }\n\n  .cesd-start-button {\n    align-self: center;\n    background: linear-gradient(135deg, var(--cesd-secondary-light), var(--cesd-secondary));\n    font-size: 20px;\n    padding: 16px 32px;\n    margin: 8px auto 0;\n    display: block;\n  }\n\n  .cesd-start-button:hover, .cesd-start-button:focus {\n    background: linear-gradient(135deg, var(--cesd-secondary), var(--cesd-secondary-dark));\n  }\n\n  .cesd-restart-button {\n    margin: 32px auto 0;\n    display: block;\n  }\n\n  .cesd-prev-button {\n    margin: 24px auto 0;\n    display: block;\n  }\n\n  \/* \u6e2c\u9a57\u9801\u6a23\u5f0f *\/\n  .cesd-instructions {\n    background-color: var(--cesd-neutral-200);\n    border-radius: var(--cesd-border-radius);\n    padding: 16px;\n    margin-bottom: 24px;\n  }\n\n  .cesd-instructions p {\n    margin: 0;\n    font-size: 16px;\n  }\n\n  .cesd-progress-container {\n    margin-bottom: 24px;\n  }\n\n  .cesd-progress-text {\n    display: flex;\n    justify-content: center;\n    margin-bottom: 8px;\n    font-weight: 600;\n    font-size: 16px;\n  }\n\n  .cesd-progress-bar {\n    height: 8px;\n    background-color: var(--cesd-neutral-300);\n    border-radius: 4px;\n    overflow: hidden;\n  }\n\n  .cesd-progress-fill {\n    height: 100%;\n    background: linear-gradient(to right, var(--cesd-secondary-light), var(--cesd-secondary));\n    width: 5%;\n    transition: width 0.3s ease;\n  }\n\n  .cesd-question-container {\n    margin-bottom: 24px;\n  }\n\n  .cesd-question {\n    margin-bottom: 24px;\n  }\n\n  .cesd-question-text {\n    font-size: 22px;\n    font-weight: 700;\n    margin-bottom: 20px;\n  }\n\n  .cesd-options {\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n  }\n\n  .cesd-option {\n    background-color: var(--cesd-neutral-200);\n    border: 2px solid var(--cesd-neutral-300);\n    border-radius: var(--cesd-border-radius);\n    padding: 16px;\n    cursor: pointer;\n    transition: var(--cesd-transition);\n    display: flex;\n    align-items: center;\n  }\n\n  .cesd-option:hover {\n    background-color: var(--cesd-neutral-300);\n    border-color: var(--cesd-neutral-500);\n  }\n\n  .cesd-option.selected {\n    background-color: rgba(91, 107, 184, 0.1);\n    border-color: var(--cesd-primary);\n  }\n\n  .cesd-option-text {\n    font-size: 18px;\n    margin-left: 12px;\n    color: var(--cesd-neutral-800);\n  }\n\n  .cesd-option-radio {\n    width: 22px;\n    height: 22px;\n    border: 2px solid var(--cesd-neutral-500);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n\n  .cesd-option.selected .cesd-option-radio {\n    border-color: var(--cesd-primary);\n  }\n\n  .cesd-option.selected .cesd-option-radio::after {\n    content: '';\n    width: 12px;\n    height: 12px;\n    border-radius: 50%;\n    background-color: var(--cesd-primary);\n  }\n\n  \/* \u7d50\u679c\u9801\u6a23\u5f0f *\/\n  .cesd-results-content {\n    display: flex;\n    flex-direction: column;\n    gap: 32px;\n  }\n\n  .cesd-results-summary {\n    text-align: center;\n    padding: 24px;\n    background-color: var(--cesd-neutral-200);\n    border-radius: var(--cesd-border-radius);\n    border-left: 4px solid var(--cesd-primary);\n  }\n\n  .cesd-results-summary h3 {\n    font-size: 24px;\n    margin-top: 0;\n    margin-bottom: 16px;\n    color: var(--cesd-primary-dark);\n  }\n\n  .cesd-results-summary p {\n    font-size: 18px;\n    margin: 0;\n    line-height: 1.7;\n  }\n\n  .cesd-chart-container {\n    height: 300px;\n    max-width: 600px;\n    margin: 0 auto;\n    width: 100%;\n  }\n\n  .cesd-results-details {\n    background-color: var(--cesd-neutral-200);\n    padding: 24px;\n    border-radius: var(--cesd-border-radius);\n  }\n\n  .cesd-results-details h3 {\n    font-size: 22px;\n    margin-top: 0;\n    margin-bottom: 16px;\n    color: var(--cesd-primary-dark);\n  }\n\n  .cesd-results-details p {\n    margin-top: 0;\n    margin-bottom: 16px;\n    font-size: 16px;\n    line-height: 1.7;\n  }\n\n  .cesd-score-item {\n    display: flex;\n    justify-content: space-between;\n    margin-bottom: 12px;\n    font-size: 16px;\n    align-items: center;\n  }\n\n  .cesd-score-label {\n    font-weight: 600;\n  }\n\n  .cesd-score-value {\n    font-weight: 600;\n    color: var(--cesd-primary-dark);\n  }\n\n  .cesd-score-bar-container {\n    flex-grow: 1;\n    height: 8px;\n    background-color: var(--cesd-neutral-300);\n    border-radius: 4px;\n    margin: 0 16px;\n    overflow: hidden;\n  }\n\n  .cesd-score-bar {\n    height: 100%;\n    background: linear-gradient(to right, var(--cesd-secondary-light), var(--cesd-secondary));\n    width: 0;\n    transition: width 1s ease;\n  }\n\n  .cesd-disclaimer {\n    background-color: var(--cesd-neutral-200);\n    padding: 16px;\n    border-radius: var(--cesd-border-radius);\n    font-size: 14px;\n    color: var(--cesd-neutral-700);\n    text-align: center;\n  }\n\n  .cesd-disclaimer p {\n    margin: 0;\n  }\n\n  .cesd-result-normal {\n    color: var(--cesd-success);\n  }\n\n  .cesd-result-mild {\n    color: var(--cesd-warning);\n  }\n\n  .cesd-result-severe {\n    color: var(--cesd-danger);\n  }\n\n  \/* \u97ff\u61c9\u5f0f\u8a2d\u8a08 *\/\n  @media (max-width: 600px) {\n    .cesd-section {\n      padding: 24px 16px;\n    }\n\n    .cesd-title {\n      font-size: 24px;\n    }\n\n    .cesd-intro-subtitle {\n      font-size: 20px;\n    }\n\n    .cesd-features {\n      gap: 24px;\n    }\n\n    .cesd-feature {\n      width: 100px;\n    }\n\n    .cesd-feature-icon {\n      width: 56px;\n      height: 56px;\n    }\n\n    .cesd-question-text {\n      font-size: 20px;\n    }\n\n    .cesd-option-text {\n      font-size: 16px;\n    }\n\n    .cesd-chart-container {\n      height: 250px;\n    }\n\n    .cesd-results-summary h3,\n    .cesd-results-details h3 {\n      font-size: 20px;\n    }\n\n    .cesd-results-summary p {\n      font-size: 16px;\n    }\n  }\n<\/style>\n\n<script>\n  \/\/ \u6d41\u884c\u75c5\u5b78\u7814\u7a76\u4e2d\u5fc3\u6182\u9b31\u91cf\u8868\uff08CES-D\uff09\u6e2c\u9a57 JavaScript\n  (function() {\n    \/\/ \u907f\u514d\u5168\u57df\u8b8a\u6578\u6c61\u67d3\n    'use strict';\n    \n    \/\/ \u6e2c\u9a57\u8cc7\u6599\n    const quizData = {\n      questions: [\n        {\n          id: 1,\n          text: \"\u6211\u70ba\u4e00\u4e9b\u5e73\u5e38\u4e0d\u6703\u7169\u60f1\u6211\u7684\u5c0f\u4e8b\u800c\u7169\u5fc3\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 2,\n          text: \"\u6211\u4e0d\u592a\u60f3\u5403\u6771\u897f\uff0c\u80c3\u53e3\u4e0d\u597d\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 3,\n          text: \"\u6211\u96d6\u6709\u5bb6\u4eba\u6216\u670b\u53cb\u52f8\u89e3\u9084\u662f\u89ba\u5f97\u5fc3\u4e2d\u9b31\u60b6\u4e0d\u958b\u5fc3\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 4,\n          text: \"\u6211\u89ba\u5f97\u548c\u5225\u4eba\u4e00\u6a23\u597d\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: true\n        },\n        {\n          id: 5,\n          text: \"\u6211\u6c92\u8fa6\u6cd5\u5c08\u5fc3\u505a\u4e8b\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 6,\n          text: \"\u6211\u89ba\u5f97\u5fc3\u60c5\u5f88\u4e0d\u597d\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 7,\n          text: \"\u6211\u89ba\u5f97\u6211\u6240\u505a\u7684\u6bcf\u4e00\u4ef6\u4e8b\u90fd\u5f88\u4e0d\u9806\u5229\uff0c\u9808\u52c9\u5f37\u505a\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 8,\n          text: \"\u6211\u89ba\u5f97\u672a\u4f86\u5f88\u6709\u5e0c\u671b\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: true\n        },\n        {\n          id: 9,\n          text: \"\u6211\u89ba\u5f97\u9019\u4e00\u751f\u5df2\u7d93\u5931\u6557\u4e86\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 10,\n          text: \"\u6211\u89ba\u5f97\u5bb3\u6015\u3001\u64d4\u5fc3\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 11,\n          text: \"\u6211\u7761\u5f97\u4e0d\u5b89\u7a69\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 12,\n          text: \"\u6211\u89ba\u5f97\u5f88\u5feb\u6a02\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: true\n        },\n        {\n          id: 13,\n          text: \"\u6211\u8aaa\u8a71\u6bd4\u5e73\u5e38\u5c11\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 14,\n          text: \"\u6211\u89ba\u5f97\u5f88\u5b64\u55ae\u5bc2\u5bde\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 15,\n          text: \"\u6211\u89ba\u5f97\u4eba\u4eba\u90fd\u4e0d\u53cb\u5584\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 16,\n          text: \"\u6211\u89ba\u5f97\u5f88\u4eab\u53d7\u4eba\u751f\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: true\n        },\n        {\n          id: 17,\n          text: \"\u6211\u66fe\u7d93\u54ed\u6ce3\u904e\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 18,\n          text: \"\u6211\u89ba\u5f97\u5f88\u60b2\u54c0\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 19,\n          text: \"\u6211\u89ba\u5f97\u5225\u4eba\u4e0d\u559c\u6b61\u6211\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        },\n        {\n          id: 20,\n          text: \"\u6211\u63d0\u4e0d\u8d77\u52c1\u4f86\u505a\u4efb\u4f55\u4e8b\",\n          options: [\n            { text: \"\u5076\u723e\u6216\u7121\uff08\u5c11\u65bc1\u5929\uff09\", value: 1 },\n            { text: \"\u6709\u6642(1-2\u5929)\", value: 2 },\n            { text: \"\u6642\u5e38\u6216\u4e00\u534a\u6642\u9593\uff083-4\u5929\uff09\", value: 3 },\n            { text: \"\u591a\u6578\u6642\u9593\u6216\u6301\u7e8c\uff085-7\u5929\uff09\", value: 4 }\n          ],\n          isReversed: false\n        }\n      ]\n    };\n\n    \/\/ DOM \u5143\u7d20\n    let elements = {};\n    \n    \/\/ \u61c9\u7528\u72c0\u614b\n    let state = {\n      currentQuestion: 0,\n      answers: Array(quizData.questions.length).fill(null),\n      scores: Array(quizData.questions.length).fill(null),\n      totalScore: 0,\n      category: '',\n      resultsChart: null\n    };\n\n    \/\/ \u5de5\u5177\u51fd\u6578 - \u9632\u6296\n    const debounce = (func, delay) => {\n      let timeout;\n      return function(...args) {\n        const context = this;\n        clearTimeout(timeout);\n        timeout = setTimeout(() => func.apply(context, args), delay);\n      };\n    };\n\n    \/\/ \u5de5\u5177\u51fd\u6578 - \u7bc0\u6d41\n    const throttle = (func, limit) => {\n      let inThrottle;\n      return function(...args) {\n        const context = this;\n        if (!inThrottle) {\n          func.apply(context, args);\n          inThrottle = true;\n          setTimeout(() => inThrottle = false, limit);\n        }\n      };\n    };\n\n    \/\/ \u521d\u59cb\u5316\u6e2c\u9a57\n    const initQuiz = () => {\n      \/\/ \u7372\u53d6 DOM \u5143\u7d20\n      elements = {\n        introSection: document.getElementById('cesd-intro-section'),\n        quizSection: document.getElementById('cesd-quiz-section'),\n        resultsSection: document.getElementById('cesd-results-section'),\n        startButton: document.getElementById('cesd-start-button'),\n        questionContainer: document.getElementById('cesd-question-container'),\n        prevButton: document.getElementById('cesd-prev-button'),\n        currentQuestionEl: document.getElementById('cesd-current-question'),\n        totalQuestionsEl: document.getElementById('cesd-total-questions'),\n        progressFill: document.getElementById('cesd-progress-fill'),\n        resultsSummary: document.getElementById('cesd-results-summary'),\n        resultsChart: document.getElementById('cesd-results-chart'),\n        resultsDetails: document.getElementById('cesd-results-details'),\n        restartButton: document.getElementById('cesd-restart-button')\n      };\n\n      \/\/ \u8a2d\u7f6e\u554f\u984c\u7e3d\u6578\n      elements.totalQuestionsEl.textContent = quizData.questions.length;\n\n      \/\/ \u6dfb\u52a0\u4e8b\u4ef6\u76e3\u807d\u5668\n      elements.startButton.addEventListener('click', startQuiz);\n      elements.prevButton.addEventListener('click', throttle(goToPreviousQuestion, 300));\n      elements.restartButton.addEventListener('click', restartQuiz);\n\n      \/\/ \u6dfb\u52a0\u8996\u7a97\u8abf\u6574\u5927\u5c0f\u4e8b\u4ef6\u8655\u7406\n      window.addEventListener('resize', debounce(() => {\n        if (state.resultsChart) {\n          state.resultsChart.resize();\n        }\n      }, 250));\n    };\n\n    \/\/ \u958b\u59cb\u6e2c\u9a57\n    const startQuiz = () => {\n      elements.introSection.style.display = 'none';\n      elements.quizSection.style.display = 'block';\n      renderCurrentQuestion();\n      scrollToElement(elements.quizSection);\n    };\n\n    \/\/ \u6e32\u67d3\u7576\u524d\u554f\u984c\n    const renderCurrentQuestion = () => {\n      const question = quizData.questions[state.currentQuestion];\n      elements.currentQuestionEl.textContent = state.currentQuestion + 1;\n      \n      \/\/ \u66f4\u65b0\u9032\u5ea6\u689d\n      const progressPercentage = ((state.currentQuestion + 1) \/ quizData.questions.length) * 100;\n      elements.progressFill.style.width = `${progressPercentage}%`;\n      \n      \/\/ \u5275\u5efa\u554f\u984c\u5143\u7d20\n      elements.questionContainer.innerHTML = '';\n      \n      const questionDiv = document.createElement('div');\n      questionDiv.className = 'cesd-question';\n      questionDiv.setAttribute('data-question-id', question.id);\n      \n      const questionText = document.createElement('h3');\n      questionText.className = 'cesd-question-text';\n      questionText.textContent = question.text;\n      questionDiv.appendChild(questionText);\n      \n      const optionsDiv = document.createElement('div');\n      optionsDiv.className = 'cesd-options';\n      \n      \/\/ \u5275\u5efa\u9078\u9805\n      question.options.forEach((option, index) => {\n        const optionDiv = document.createElement('div');\n        optionDiv.className = 'cesd-option';\n        optionDiv.setAttribute('data-option-index', index);\n        optionDiv.setAttribute('data-option-value', option.value);\n        \n        if (state.answers[state.currentQuestion] === index) {\n          optionDiv.classList.add('selected');\n        }\n        \n        const optionRadio = document.createElement('div');\n        optionRadio.className = 'cesd-option-radio';\n        optionDiv.appendChild(optionRadio);\n        \n        const optionText = document.createElement('div');\n        optionText.className = 'cesd-option-text';\n        optionText.textContent = option.text;\n        optionDiv.appendChild(optionText);\n        \n        \/\/ \u6dfb\u52a0\u9078\u64c7\u4e8b\u4ef6\n        optionDiv.addEventListener('click', throttle(() => selectOption(index, option.value), 300));\n        \n        optionsDiv.appendChild(optionDiv);\n      });\n      \n      questionDiv.appendChild(optionsDiv);\n      elements.questionContainer.appendChild(questionDiv);\n      \n      \/\/ \u66f4\u65b0\u4e0a\u4e00\u984c\u6309\u9215\u72c0\u614b\n      elements.prevButton.disabled = state.currentQuestion === 0;\n    };\n\n    \/\/ \u9078\u64c7\u9078\u9805\n    const selectOption = (optionIndex, value) => {\n      \/\/ \u8a18\u9304\u7b54\u6848\u548c\u5206\u6578\n      state.answers[state.currentQuestion] = optionIndex;\n      \n      \/\/ \u8a08\u7b97\u7576\u524d\u554f\u984c\u7684\u5206\u6578\n      const question = quizData.questions[state.currentQuestion];\n      let score = value;\n      \n      \/\/ \u5982\u679c\u662f\u53cd\u5411\u8a08\u5206\u7684\u554f\u984c\uff0c\u53cd\u8f49\u5206\u6578 (5-value)\n      if (question.isReversed) {\n        score = 5 - value;\n      }\n      \n      state.scores[state.currentQuestion] = score;\n      \n      \/\/ \u5982\u679c\u662f\u6700\u5f8c\u4e00\u984c\uff0c\u8a08\u7b97\u7d50\u679c\u4e26\u986f\u793a\n      if (state.currentQuestion === quizData.questions.length - 1) {\n        calculateResults();\n        showResults();\n      } else {\n        \/\/ \u5426\u5247\uff0c\u524d\u9032\u5230\u4e0b\u4e00\u984c\n        state.currentQuestion++;\n        renderCurrentQuestion();\n      }\n    };\n\n    \/\/ \u8fd4\u56de\u4e0a\u4e00\u984c\n    const goToPreviousQuestion = () => {\n      if (state.currentQuestion > 0) {\n        state.currentQuestion--;\n        renderCurrentQuestion();\n      }\n    };\n\n    \/\/ \u8a08\u7b97\u6e2c\u9a57\u7d50\u679c\n    const calculateResults = () => {\n      \/\/ \u8a08\u7b97\u7e3d\u5206\n      state.totalScore = state.scores.reduce((total, score) => {\n        return total + (score || 0);\n      }, 0);\n      \n      \/\/ \u78ba\u5b9a\u5206\u985e\n      if (state.totalScore < 15) {\n        state.category = 'normal';\n      } else if (state.totalScore >= 15 && state.totalScore <= 21) {\n        state.category = 'mild';\n      } else {\n        state.category = 'severe';\n      }\n    };\n\n    \/\/ \u986f\u793a\u7d50\u679c\n    const showResults = () => {\n      elements.quizSection.style.display = 'none';\n      elements.resultsSection.style.display = 'block';\n      \n      renderResultsSummary();\n      renderResultsChart();\n      renderResultsDetails();\n      \n      scrollToElement(elements.resultsSection);\n    };\n\n    \/\/ \u6e32\u67d3\u7d50\u679c\u6458\u8981\n    const renderResultsSummary = () => {\n      let resultTitle = '';\n      let resultDescription = '';\n      let resultClass = '';\n      \n      if (state.category === 'normal') {\n        resultTitle = '\u60c5\u7dd2\u5065\u5eb7\u72c0\u614b';\n        resultDescription = '\u60a8\u7684\u60c5\u7dd2\u5728\u5065\u5eb7\u6c34\u5e73\uff0c\u7e3d\u5206\u70ba ' + state.totalScore + ' \u5206\u3002\u5982\u6709\u67d0\u500b\u6291\u9b31\u5fb5\u72c0\u6301\u7e8c\u51fa\u73fe\uff0c\u4ecd\u9808\u9032\u4e00\u6b65\u8a55\u4f30\u3002';\n        resultClass = 'cesd-result-normal';\n      } else if (state.category === 'mild') {\n        resultTitle = '\u8f15\u5ea6\u6291\u9b31\u5fb5\u72c0';\n        resultDescription = '\u60a8\u7684\u6291\u9b31\u5fb5\u72c0\u6c34\u5e73\u9ad8\u51fa\u6a19\u6e96\uff0c\u7e3d\u5206\u70ba ' + state.totalScore + ' \u5206\uff0c\u8655\u65bc 15-21 \u5206\u4e4b\u9593\u3002\u96d6\u7136\u73fe\u6642\u60c5\u6cc1\u4ecd\u5c6c\u6eab\u548c\uff0c\u4f46\u5efa\u8b70\u60a8\u627e\u5c08\u696d\u4eba\u58eb\u8a3a\u6cbb\u3002';\n        resultClass = 'cesd-result-mild';\n      } else {\n        resultTitle = '\u56b4\u91cd\u6291\u9b31\u5fb5\u72c0';\n        resultDescription = '\u60a8\u7684\u6291\u9b31\u60c5\u6cc1\u56b4\u91cd\uff0c\u7e3d\u5206\u70ba ' + state.totalScore + ' \u5206\uff0c\u5df2\u8d85\u904e 21 \u5206\u3002\u5efa\u8b70\u60a8\u7acb\u5373\u627e\u5c08\u696d\u4eba\u58eb\u8a3a\u6cbb\u3002';\n        resultClass = 'cesd-result-severe';\n      }\n      \n      elements.resultsSummary.innerHTML = `\n        <h3 class=\"${resultClass}\">${resultTitle}<\/h3>\n        <p>${resultDescription}<\/p>\n      `;\n    };\n\n    \/\/ \u6e32\u67d3\u7d50\u679c\u5716\u8868\n    const renderResultsChart = () => {\n      const ctx = elements.resultsChart.getContext('2d');\n      \n      \/\/ \u5982\u679c\u5df2\u7d93\u6709\u5716\u8868\uff0c\u5148\u92b7\u6bc0\u5b83\n      if (state.resultsChart) {\n        state.resultsChart.destroy();\n      }\n      \n      \/\/ \u8a08\u7b97\u7a4d\u6975\u60c5\u7dd2\u548c\u6d88\u6975\u60c5\u7dd2\u7684\u5e73\u5747\u5206\n      const positiveQuestions = [4, 8, 12, 16];\n      const negativeQuestions = quizData.questions\n        .map((q, index) => index)\n        .filter(index => !positiveQuestions.includes(index));\n      \n      const positiveScores = positiveQuestions.map(index => state.scores[index] || 0);\n      const negativeScores = negativeQuestions.map(index => state.scores[index] || 0);\n      \n      const positiveAvg = positiveScores.reduce((sum, score) => sum + score, 0) \/ positiveScores.length;\n      const negativeAvg = negativeScores.reduce((sum, score) => sum + score, 0) \/ negativeScores.length;\n      \n      \/\/ \u6291\u9b31\u75c7\u72c0\u7684\u4e0d\u540c\u65b9\u9762\u7684\u5e73\u5747\u5206\n      const categories = {\n        \"\u6291\u9b31\u5fc3\u60c5\": [0, 5, 17],\n        \"\u7f6a\u60e1\u611f\u548c\u7121\u50f9\u503c\u611f\": [3, 8, 18],\n        \"\u7121\u52a9\u8207\u7121\u671b\u611f\": [6, 9, 19],\n        \"\u7cbe\u795e\u904b\u52d5\u6027\u9072\u6eef\": [4, 12, 13],\n        \"\u98df\u617e\u55aa\u5931\": [1],\n        \"\u7761\u7720\u969c\u7919\": [10]\n      };\n      \n      const categoryScores = {};\n      for (const [category, indices] of Object.entries(categories)) {\n        const scores = indices.map(index => state.scores[index] || 0);\n        categoryScores[category] = scores.reduce((sum, score) => sum + score, 0) \/ scores.length;\n      }\n      \n      \/\/ \u5275\u5efa\u65b0\u5716\u8868\n      state.resultsChart = new Chart(ctx, {\n        type: 'radar',\n        data: {\n          labels: Object.keys(categoryScores),\n          datasets: [{\n            label: '\u6182\u9b31\u75c7\u72c0\u5206\u4f48',\n            data: Object.values(categoryScores),\n            backgroundColor: 'rgba(91, 107, 184, 0.2)',\n            borderColor: 'rgba(91, 107, 184, 0.8)',\n            borderWidth: 2,\n            pointBackgroundColor: 'rgba(91, 107, 184, 1)',\n            pointBorderColor: '#fff',\n            pointHoverBackgroundColor: '#fff',\n            pointHoverBorderColor: 'rgba(91, 107, 184, 1)'\n          }]\n        },\n        options: {\n          responsive: true,\n          maintainAspectRatio: false,\n          scales: {\n            r: {\n              angleLines: {\n                display: true\n              },\n              suggestedMin: 0,\n              suggestedMax: 4,\n              ticks: {\n                stepSize: 1,\n                font: {\n                  size: 14\n                }\n              },\n              pointLabels: {\n                font: {\n                  size: 18\n                }\n              }\n            }\n          },\n          plugins: {\n            legend: {\n              display: false\n            },\n            tooltip: {\n              callbacks: {\n                label: function(context) {\n                  const value = context.raw;\n                  return `\u5f97\u5206: ${value.toFixed(1)}`;\n                }\n              }\n            }\n          }\n        }\n      });\n      \n      \/\/ \u52d5\u756b\u5ef6\u9072\u5f8c\u986f\u793a\u5f97\u5206\u689d\n      setTimeout(() => {\n        const scoreBarElements = document.querySelectorAll('.cesd-score-bar');\n        scoreBarElements.forEach(bar => {\n          const percentage = parseFloat(bar.dataset.percent);\n          bar.style.width = `${percentage}%`;\n        });\n      }, 500);\n    };\n\n    \/\/ \u6e32\u67d3\u7d50\u679c\u8a73\u60c5\n    const renderResultsDetails = () => {\n      \/\/ \u8a08\u7b97\u4e0d\u540c\u985e\u578b\u554f\u984c\u7684\u7e3d\u5206\u548c\u767e\u5206\u6bd4\n      const maxScore = quizData.questions.length * 4; \/\/ \u6700\u9ad8\u53ef\u80fd\u5206\u6578\n      const scorePercentage = (state.totalScore \/ maxScore) * 100;\n      \n      \/\/ \u627e\u51fa\u5f97\u5206\u6700\u9ad8\u7684\u4e09\u500b\u65b9\u9762\n      const depressedMood = [0, 5, 17].map(i => state.scores[i] || 0).reduce((a, b) => a + b, 0);\n      const guiltFeelings = [3, 8, 18].map(i => state.scores[i] || 0).reduce((a, b) => a + b, 0);\n      const helplessness = [6, 9, 19].map(i => state.scores[i] || 0).reduce((a, b) => a + b, 0);\n      const psychomotorRetardation = [4, 12, 13].map(i => state.scores[i] || 0).reduce((a, b) => a + b, 0);\n      const appetiteLoss = state.scores[1] || 0;\n      const sleepDisturbance = state.scores[10] || 0;\n      \n      const aspects = [\n        { name: \"\u6291\u9b31\u5fc3\u60c5\", score: depressedMood, max: 12 },\n        { name: \"\u7f6a\u60e1\u611f\u548c\u7121\u50f9\u503c\u611f\", score: guiltFeelings, max: 12 },\n        { name: \"\u7121\u52a9\u8207\u7121\u671b\u611f\", score: helplessness, max: 12 },\n        { name: \"\u7cbe\u795e\u904b\u52d5\u6027\u9072\u6eef\", score: psychomotorRetardation, max: 12 },\n        { name: \"\u98df\u617e\u55aa\u5931\", score: appetiteLoss, max: 4 },\n        { name: \"\u7761\u7720\u969c\u7919\", score: sleepDisturbance, max: 4 }\n      ];\n      \n      \/\/ \u8a08\u7b97\u6bcf\u500b\u65b9\u9762\u7684\u767e\u5206\u6bd4\uff0c\u4e26\u6309\u767e\u5206\u6bd4\u5f9e\u9ad8\u5230\u4f4e\u6392\u5e8f\n      aspects.forEach(aspect => {\n        aspect.percentage = (aspect.score \/ aspect.max) * 100;\n      });\n      \n      aspects.sort((a, b) => b.percentage - a.percentage);\n      \n      let resultsContent = '';\n      \n      if (state.category === 'normal') {\n        resultsContent = `\n          <h3>\u7d50\u679c\u89e3\u6790<\/h3>\n          <p>\u6839\u64daCES-D\u91cf\u8868\uff0c\u60a8\u7684\u6291\u9b31\u5fb5\u72c0\u8655\u65bc\u5065\u5eb7\u7bc4\u570d\u5167\u3002\u4ee5\u4e0b\u662f\u60a8\u7684\u8a73\u7d30\u5f97\u5206\uff1a<\/p>\n        `;\n      } else if (state.category === 'mild') {\n        resultsContent = `\n          <h3>\u7d50\u679c\u89e3\u6790<\/h3>\n          <p>\u60a8\u7684\u6291\u9b31\u5fb5\u72c0\u8f15\u5ea6\u504f\u9ad8\uff0c\u5efa\u8b70\u95dc\u6ce8\u81ea\u5df1\u7684\u60c5\u7dd2\u5065\u5eb7\u3002\u5982\u679c\u9019\u4e9b\u5fb5\u72c0\u6301\u7e8c\u8d85\u904e\u5169\u9031\uff0c\u5efa\u8b70\u5c0b\u6c42\u5c08\u696d\u7684\u5fc3\u7406\u8aee\u8a62\u3002\u4ee5\u4e0b\u662f\u60a8\u7684\u8a73\u7d30\u5f97\u5206\uff1a<\/p>\n        `;\n      } else {\n        resultsContent = `\n          <h3>\u7d50\u679c\u89e3\u6790<\/h3>\n          <p>\u60a8\u7684\u6291\u9b31\u5fb5\u72c0\u8655\u65bc\u8f03\u9ad8\u6c34\u5e73\uff0c\u9019\u53ef\u80fd\u5c0d\u60a8\u7684\u65e5\u5e38\u751f\u6d3b\u548c\u5065\u5eb7\u7522\u751f\u5f71\u97ff\u3002\u5efa\u8b70\u76e1\u5feb\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u91ab\u5e2b\u6216\u7cbe\u795e\u79d1\u91ab\u5e2b\u7684\u5354\u52a9\u3002\u4ee5\u4e0b\u662f\u60a8\u7684\u8a73\u7d30\u5f97\u5206\uff1a<\/p>\n        `;\n      }\n      \n      resultsContent += `\n        <div class=\"cesd-score-item\">\n          <span class=\"cesd-score-label\">\u7e3d\u5206:<\/span>\n          <div class=\"cesd-score-bar-container\">\n            <div class=\"cesd-score-bar\" data-percent=\"${scorePercentage}\"><\/div>\n          <\/div>\n          <span class=\"cesd-score-value\">${state.totalScore}\/${maxScore}<\/span>\n        <\/div>\n      `;\n      \n      \/\/ \u986f\u793a\u5404\u65b9\u9762\u7684\u5f97\u5206\n      aspects.forEach(aspect => {\n        resultsContent += `\n          <div class=\"cesd-score-item\">\n            <span class=\"cesd-score-label\">${aspect.name}:<\/span>\n            <div class=\"cesd-score-bar-container\">\n              <div class=\"cesd-score-bar\" data-percent=\"${aspect.percentage}\"><\/div>\n            <\/div>\n            <span class=\"cesd-score-value\">${aspect.score}\/${aspect.max}<\/span>\n          <\/div>\n        `;\n      });\n      \n      \/\/ \u63d0\u4f9b\u91dd\u5c0d\u6027\u5efa\u8b70\n      resultsContent += `\n        <p>\u6839\u64da\u60a8\u7684\u7d50\u679c\uff0c\u53ef\u80fd\u9700\u8981\u7279\u5225\u95dc\u6ce8\u4ee5\u4e0b\u65b9\u9762\uff1a<\/p>\n        <ul>\n      `;\n      \n      \/\/ \u986f\u793a\u5f97\u5206\u6700\u9ad8\u7684\u4e09\u500b\u65b9\u9762\u7684\u5efa\u8b70\n      const topAspects = aspects.slice(0, 3);\n      const suggestions = {\n        \"\u6291\u9b31\u5fc3\u60c5\": \"\u5617\u8a66\u53c3\u8207\u80fd\u63d0\u5347\u6b63\u5411\u60c5\u7dd2\u7684\u6d3b\u52d5\uff0c\u5982\u6236\u5916\u904b\u52d5\u3001\u8207\u670b\u53cb\u76f8\u805a\u6216\u5f9e\u4e8b\u60a8\u559c\u611b\u7684\u611b\u597d\u3002\",\n        \"\u7f6a\u60e1\u611f\u548c\u7121\u50f9\u503c\u611f\": \"\u7df4\u7fd2\u81ea\u6211\u80af\u5b9a\u548c\u81ea\u6211\u63a5\u7d0d\uff0c\u95dc\u6ce8\u81ea\u5df1\u7684\u512a\u9ede\u548c\u6210\u5c31\uff0c\u4e0d\u8981\u904e\u5ea6\u82db\u8cac\u81ea\u5df1\u3002\",\n        \"\u7121\u52a9\u8207\u7121\u671b\u611f\": \"\u8a2d\u5b9a\u5c0f\u800c\u660e\u78ba\u7684\u76ee\u6a19\uff0c\u9010\u6b65\u5be6\u73fe\uff0c\u5efa\u7acb\u6210\u5c31\u611f\u548c\u63a7\u5236\u611f\u3002\",\n        \"\u7cbe\u795e\u904b\u52d5\u6027\u9072\u6eef\": \"\u4fdd\u6301\u898f\u5f8b\u7684\u751f\u6d3b\u4f5c\u606f\uff0c\u5617\u8a66\u8f15\u5ea6\u6709\u6c27\u904b\u52d5\u4f86\u4fc3\u9032\u5927\u8166\u8840\u6db2\u5faa\u74b0\u548c\u795e\u7d93\u50b3\u5c0e\u7269\u8cea\u7684\u91cb\u653e\u3002\",\n        \"\u98df\u617e\u55aa\u5931\": \"\u6ce8\u610f\u71df\u990a\u5747\u8861\uff0c\u5b9a\u6642\u9032\u98df\uff0c\u9078\u64c7\u6613\u65bc\u6d88\u5316\u4e14\u71df\u990a\u8c50\u5bcc\u7684\u98df\u7269\u3002\",\n        \"\u7761\u7720\u969c\u7919\": \"\u5efa\u7acb\u826f\u597d\u7684\u7761\u7720\u7fd2\u6163\uff0c\u56fa\u5b9a\u7761\u7720\u6642\u9593\uff0c\u7761\u524d\u907f\u514d\u4f7f\u7528\u96fb\u5b50\u8a2d\u5099\u548c\u651d\u5165\u5496\u5561\u56e0\u3002\"\n      };\n      \n      topAspects.forEach(aspect => {\n        resultsContent += `<li>${suggestions[aspect.name]}<\/li>`;\n      });\n      \n      resultsContent += `\n        <\/ul>\n        <p>\u8acb\u8a18\u4f4f\uff0c\u4fdd\u6301\u7a4d\u6975\u7684\u751f\u6d3b\u65b9\u5f0f\u548c\u5c0b\u6c42\u793e\u6703\u652f\u6301\u5c0d\u60c5\u7dd2\u5065\u5eb7\u81f3\u95dc\u91cd\u8981\u3002\u5982\u679c\u60a8\u7684\u6291\u9b31\u5fb5\u72c0\u6301\u7e8c\u5b58\u5728\u6216\u52a0\u91cd\uff0c\u8acb\u5c0b\u6c42\u5c08\u696d\u5e6b\u52a9\u3002<\/p>\n      `;\n      \n      elements.resultsDetails.innerHTML = resultsContent;\n    };\n\n    \/\/ \u91cd\u65b0\u958b\u59cb\u6e2c\u9a57\n    const restartQuiz = () => {\n      \/\/ \u91cd\u7f6e\u72c0\u614b\n      state = {\n        currentQuestion: 0,\n        answers: Array(quizData.questions.length).fill(null),\n        scores: Array(quizData.questions.length).fill(null),\n        totalScore: 0,\n        category: '',\n        resultsChart: state.resultsChart\n      };\n      \n      \/\/ \u91cd\u7f6e\u8996\u5716\n      elements.resultsSection.style.display = 'none';\n      elements.introSection.style.display = 'block';\n      \n      scrollToElement(elements.introSection);\n    };\n\n    \/\/ \u6efe\u52d5\u5230\u5143\u7d20\n    const scrollToElement = (element) => {\n      if (element) {\n        element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      }\n    };\n\n    \/\/ DOM \u5167\u5bb9\u8f09\u5165\u5b8c\u6210\u5f8c\u521d\u59cb\u5316\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', initQuiz);\n    } else {\n      initQuiz();\n    }\n  })();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>\u6d41\u884c\u75c5\u5b66\u7814\u7a76\u4e2d\u5fc3\u6291\u90c1\u91cf\u8868\uff08CES-D\uff09\u662f\u7f8e\u56fd\u56fd\u7acb\u7cbe\u795e\u536b\u751f\u7814\u7a76\u9662Radloff\u4e8e1977\u5e74\u7279\u522b\u4e3a\u8bc4\u4ef7\u5f53\u524d\u6291\u90c1\u75c7\u72b6\u7684\u9891\u5ea6\u800c\u8bbe\u8ba1\u7684\u3002\u7740\u91cd\u4e8e\u6291\u90c1\u60c5\u611f\u6216\u5fc3\u5883\uff0c \u6574\u4e2a\u91cf\u8868\u517120\u4e2a\u6761\u76ee\uff0c\u4ee3\u8868\u4e86\u6291\u90c1\u75c7\u72b6\u7684\u4e3b\u8981\u65b9\u9762\u3002\u6761\u76ee\u53cd\u6620\u4e86\u5fe7\u90c1\u72b6\u6001\u7684\u4ee5\u4e0b\u516d\u4e2a\u4fa7\u9762\uff1a\u6291\u90c1\u5fc3\u60c5\u3001\u7f6a\u6076\u611f\u548c\u65e0\u4ef7\u503c\u611f\u3001\u65e0\u52a9\u4e0e\u65e0\u671b\u611f\u3001\u7cbe\u795e\u8fd0\u52a8\u6027\u8fdf\u6ede\u3001\u98df\u6b32\u4e27\u5931\u3001\u7761\u7720\u969c\u788d\u3002<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"narrow-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[162],"tags":[],"class_list":["post-9282","post","type-post","status-publish","format-standard","hentry","category-clinical"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/comments?post=9282"}],"version-history":[{"count":10,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9282\/revisions"}],"predecessor-version":[{"id":9938,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9282\/revisions\/9938"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=9282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=9282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=9282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}