{"id":5816,"date":"2024-01-22T15:45:16","date_gmt":"2024-01-22T07:45:16","guid":{"rendered":"https:\/\/bookmark.tw\/?p=5816"},"modified":"2025-08-05T03:31:08","modified_gmt":"2025-08-04T19:31:08","slug":"y-bocs","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/y-bocs","title":{"rendered":"\u8036\u9b6f-\u5e03\u6717\u5f37\u8feb\u75c7\u91cf\u8868(Y-BOCS)\u7dda\u4e0a\u514d\u8cbb\u6e2c\u9a57\uff0810\u984c\uff09"},"content":{"rendered":"\n    <!-- \u5f15\u5165Bootstrap CSS -->\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap\/5.3.3\/css\/bootstrap.min.css\" rel=\"stylesheet\">\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/bootstrap-icons\/1.11.3\/font\/bootstrap-icons.min.css\" rel=\"stylesheet\">\n<\/head>\n<body>\n\n<!-- HTML \u7d50\u69cb -->\n<div class=\"ybocs-quiz-container\">\n <!-- \u5f15\u5c0e\u9801 -->\n <section id=\"quizintro9\" data-page=\"intro9\" class=\"quiz-section active\">\n   <div class=\"container py-5\">\n     <div class=\"row justify-content-center\">\n       <div class=\"col-12\">\n         <header class=\"text-center mb-5\">\n           <h2 class=\"display-4 fw-bold text-primary mb-3\">\u8036\u9b6f-\u5e03\u6717\u5f37\u8feb\u75c7\u91cf\u8868(Y-BOCS)<\/h2>\n           <p class=\"lead text-muted fs-4\">\u5c08\u696d\u8a55\u4f30\u5f37\u8feb\u75c7\u72c0\u56b4\u91cd\u7a0b\u5ea6\u7684\u6a19\u6e96\u5316\u5de5\u5177<\/p>\n         <\/header>\n         \n         <div class=\"row g-4 mb-5\">\n           <div class=\"col-md-4 text-center\">\n             <div class=\"feature-icon bg-primary bg-gradient rounded-circle d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n               <i class=\"bi bi-clipboard-data text-white fs-2\"><\/i>\n             <\/div>\n             <h4 class=\"fw-semibold\">\u79d1\u5b78\u8a55\u4f30<\/h4>\n             <p class=\"text-muted\">\u63a1\u7528\u570b\u969b\u6a19\u6e96\u5316\u91cf\u8868\uff0c\u6e96\u78ba\u8a55\u4f30\u5f37\u8feb\u75c7\u72c0<\/p>\n           <\/div>\n           \n           <div class=\"col-md-4 text-center\">\n             <div class=\"feature-icon bg-success bg-gradient rounded-circle d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n               <i class=\"bi bi-graph-up text-white fs-2\"><\/i>\n             <\/div>\n             <h4 class=\"fw-semibold\">\u5c08\u696d\u5206\u6790<\/h4>\n             <p class=\"text-muted\">\u5206\u5225\u8a55\u4f30\u5f37\u8feb\u601d\u60f3\u8207\u5f37\u8feb\u884c\u70ba\u7684\u56b4\u91cd\u7a0b\u5ea6<\/p>\n           <\/div>\n           \n           <div class=\"col-md-4 text-center\">\n             <div class=\"feature-icon bg-info bg-gradient rounded-circle d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n               <i class=\"bi bi-heart-pulse text-white fs-2\"><\/i>\n             <\/div>\n             <h4 class=\"fw-semibold\">\u5065\u5eb7\u6307\u5f15<\/h4>\n             <p class=\"text-muted\">\u63d0\u4f9b\u5c08\u696d\u5efa\u8b70\uff0c\u5e6b\u52a9\u60a8\u4e86\u89e3\u81ea\u8eab\u72c0\u6cc1<\/p>\n           <\/div>\n         <\/div>\n         \n         <div class=\"card border-0 shadow-lg\">\n           <div class=\"card-body p-4\">\n             <h3 class=\"card-title fw-bold mb-3\">\u6e2c\u9a57\u8aaa\u660e<\/h3>\n             <p class=\"card-text mb-3\">\u672c\u91cf\u8868\u7531\u8036\u9b6f\u5927\u5b78\u958b\u767c\uff0c\u662f\u8a55\u4f30\u5f37\u8feb\u75c7\u72c0\u6700\u5e38\u7528\u7684\u81e8\u5e8a\u5de5\u5177\u4e4b\u4e00\u3002\u8acb\u6839\u64da\u904e\u53bb\u4e00\u9031\u7684\u5e73\u5747\u60c5\u6cc1\u56de\u7b54\u554f\u984c\uff0c\u6bcf\u500b\u554f\u984c\u90fd\u662f\u5fc5\u9078\u7684\u3002<\/p>\n             \n             <div class=\"alert alert-info d-flex align-items-center mb-4\" role=\"alert\">\n               <i class=\"bi bi-info-circle-fill me-2\"><\/i>\n               <div>\n                 <strong>\u91cd\u8981\u63d0\u9192\uff1a<\/strong>\u672c\u6e2c\u9a57\u50c5\u4f9b\u53c3\u8003\uff0c\u4e0d\u80fd\u66ff\u4ee3\u5c08\u696d\u91ab\u5b78\u8a3a\u65b7\u3002\u5982\u6709\u7591\u616e\uff0c\u8acb\u8aee\u8a62\u5c08\u696d\u91ab\u7642\u4eba\u54e1\u3002\n               <\/div>\n             <\/div>\n             \n             <div class=\"text-center\">\n               <button type=\"button\" class=\"btn btn-primary btn-lg px-5 py-3 fw-semibold\" data-action=\"start-quiz\">\n                 <i class=\"bi bi-play-fill me-2\"><\/i>\u958b\u59cb\u6e2c\u9a57\n               <\/button>\n             <\/div>\n           <\/div>\n         <\/div>\n       <\/div>\n     <\/div>\n   <\/div>\n <\/section>\n\n <!-- \u6e2c\u9a57\u9801 -->\n <section id=\"quizmain9\" data-page=\"quiz9\" class=\"quiz-section d-none\">\n   <div class=\"container py-4\">\n     <div class=\"row justify-content-center\">\n       <div class=\"col-12\">\n         <header class=\"text-center mb-4\">\n           <h2 class=\"fw-bold text-primary\">\u8036\u9b6f-\u5e03\u6717\u5f37\u8feb\u75c7\u91cf\u8868<\/h2>\n         <\/header>\n         \n         <!-- \u9032\u5ea6\u689d -->\n         <div class=\"progress mb-4\" style=\"height: 8px;\">\n           <div class=\"progress-bar bg-primary\" role=\"progressbar\" style=\"width: 10%\"><\/div>\n         <\/div>\n         \n         <div class=\"text-center mb-3\">\n           <span class=\"badge bg-primary fs-6 px-3 py-2\">\u554f\u984c <span data-current=\"1\">1<\/span> \/ <span data-total=\"10\">10<\/span><\/span>\n         <\/div>\n         \n         <!-- \u554f\u984c\u5bb9\u5668 -->\n         <div class=\"question-container\">\n           <div class=\"card border-0 shadow\">\n             <div class=\"card-body p-4\">\n               <h3 class=\"question-title fw-bold mb-4\" style=\"font-size: 22px;\"><\/h3>\n               \n               <!-- \u8df3\u984c\u63d0\u793a -->\n               <div class=\"alert alert-warning d-none\" id=\"skip-notice\">\n                 <i class=\"bi bi-info-circle me-2\"><\/i>\n                 <span id=\"skip-notice-text\"><\/span>\n               <\/div>\n               \n               <div class=\"options-container d-grid gap-3\"><\/div>\n               \n               <div class=\"d-flex justify-content-center mt-4\">\n                 <button type=\"button\" class=\"btn btn-outline-secondary me-3 d-none\" data-action=\"prev-question\">\n                   <i class=\"bi bi-arrow-left me-2\"><\/i>\u4e0a\u4e00\u984c\n                 <\/button>\n               <\/div>\n             <\/div>\n           <\/div>\n         <\/div>\n       <\/div>\n     <\/div>\n   <\/div>\n <\/section>\n\n <!-- \u7d50\u679c\u9801 -->\n <section id=\"quizresult9\" data-page=\"result9\" class=\"quiz-section d-none\">\n   <div class=\"container py-5\">\n     <div class=\"row justify-content-center\">\n       <div class=\"col-12\">\n         <header class=\"text-center mb-5\">\n           <h2 class=\"display-5 fw-bold text-primary\">\u6e2c\u9a57\u7d50\u679c<\/h2>\n           <p class=\"lead text-muted\">\u57fa\u65bc\u60a8\u7684\u56de\u7b54\u9032\u884c\u5c08\u696d\u5206\u6790<\/p>\n         <\/header>\n         \n         <div class=\"row g-4\">\n           <!-- \u7e3d\u9ad4\u7d50\u679c -->\n           <div class=\"col-lg-6\">\n             <div class=\"card border-0 shadow h-100\">\n               <div class=\"card-body p-4\">\n                 <h3 class=\"card-title fw-bold mb-3\">\n                   <i class=\"bi bi-clipboard-check text-primary me-2\"><\/i>\u6574\u9ad4\u8a55\u4f30\n                 <\/h3>\n                 <div class=\"result-summary mb-3\">\n                   <div class=\"d-flex justify-content-between align-items-center mb-2\">\n                     <span class=\"fw-semibold\">\u7e3d\u5206\uff1a<\/span>\n                     <span class=\"badge bg-primary fs-6 px-3 py-2\" data-total-score>0<\/span>\n                   <\/div>\n                   <div class=\"severity-level p-3 rounded border-start border-4\" data-severity-level><\/div>\n                 <\/div>\n                 <div class=\"result-description\" data-result-description><\/div>\n               <\/div>\n             <\/div>\n           <\/div>\n           \n           <!-- \u5716\u8868\u5340\u57df -->\n           <div class=\"col-lg-6\">\n             <div class=\"card border-0 shadow h-100\">\n               <div class=\"card-body p-4\">\n                 <h3 class=\"card-title fw-bold mb-3\">\n                   <i class=\"bi bi-bar-chart text-success me-2\"><\/i>\u5f97\u5206\u5206\u4f48\u4f4d\u7f6e\n                 <\/h3>\n                 <div class=\"position-relative\">\n                   <div class=\"chart-container\" style=\"height: 120px;\">\n                     <canvas id=\"distributionChart\"><\/canvas>\n                   <\/div>\n                   <div class=\"chart-legend mt-3\">\n                     <div class=\"row g-2 text-center\">\n                       <div class=\"col-3\">\n                         <div class=\"legend-item\">\n                           <div class=\"legend-color bg-success mb-1\" style=\"height: 12px; border-radius: 2px;\"><\/div>\n                           <small class=\"d-block\">\u7121\u75c7\u72c0<\/small>\n                           <small class=\"text-muted\">0-5\u5206<\/small>\n                         <\/div>\n                       <\/div>\n                       <div class=\"col-3\">\n                         <div class=\"legend-item\">\n                           <div class=\"legend-color bg-warning mb-1\" style=\"height: 12px; border-radius: 2px;\"><\/div>\n                           <small class=\"d-block\">\u8f15\u5ea6<\/small>\n                           <small class=\"text-muted\">6-15\u5206<\/small>\n                         <\/div>\n                       <\/div>\n                       <div class=\"col-3\">\n                         <div class=\"legend-item\">\n                           <div class=\"legend-color bg-orange mb-1\" style=\"height: 12px; border-radius: 2px;\"><\/div>\n                           <small class=\"d-block\">\u4e2d\u5ea6<\/small>\n                           <small class=\"text-muted\">16-25\u5206<\/small>\n                         <\/div>\n                       <\/div>\n                       <div class=\"col-3\">\n                         <div class=\"legend-item\">\n                           <div class=\"legend-color bg-danger mb-1\" style=\"height: 12px; border-radius: 2px;\"><\/div>\n                           <small class=\"d-block\">\u91cd\u5ea6<\/small>\n                           <small class=\"text-muted\">26-40\u5206<\/small>\n                         <\/div>\n                       <\/div>\n                     <\/div>\n                   <\/div>\n                 <\/div>\n               <\/div>\n             <\/div>\n           <\/div>\n           \n           <!-- \u5206\u9805\u8a55\u4f30 -->\n           <div class=\"col-12\">\n             <div class=\"card border-0 shadow\">\n               <div class=\"card-body p-4\">\n                 <h3 class=\"card-title fw-bold mb-3\">\n                   <i class=\"bi bi-list-check text-info me-2\"><\/i>\u5206\u9805\u56b4\u91cd\u7a0b\u5ea6\u8a55\u4f30\n                 <\/h3>\n                 <div class=\"row g-4\" data-severity-assessment><\/div>\n               <\/div>\n             <\/div>\n           <\/div>\n           \n           <!-- \u591a\u7dad\u5206\u6790 -->\n           <div class=\"col-12\">\n             <div class=\"card border-0 shadow\">\n               <div class=\"card-body p-4\">\n                 <h3 class=\"card-title fw-bold mb-3\">\n                   <i class=\"bi bi-pie-chart text-info me-2\"><\/i>\u591a\u7dad\u5ea6\u5206\u6790\n                 <\/h3>\n                 <div class=\"row g-4\" data-dimension-analysis><\/div>\n               <\/div>\n             <\/div>\n           <\/div>\n           \n           <!-- \u500b\u6027\u5316\u5efa\u8b70 -->\n           <div class=\"col-12\">\n             <div class=\"card border-0 shadow\">\n               <div class=\"card-body p-4\">\n                 <h3 class=\"card-title fw-bold mb-3\">\n                   <i class=\"bi bi-lightbulb text-warning me-2\"><\/i>\u500b\u6027\u5316\u5efa\u8b70\n                 <\/h3>\n                 <div class=\"personalized-advice\" data-personalized-advice><\/div>\n               <\/div>\n             <\/div>\n           <\/div>\n         <\/div>\n         \n         <div class=\"text-center mt-5\">\n           <button type=\"button\" class=\"btn btn-primary btn-lg px-5 py-3 fw-semibold\" data-action=\"restart-quiz\">\n             <i class=\"bi bi-arrow-clockwise me-2\"><\/i>\u91cd\u65b0\u6e2c\u9a57\n           <\/button>\n         <\/div>\n       <\/div>\n     <\/div>\n   <\/div>\n <\/section>\n<\/div>\n\n<!-- CSS \u6a23\u5f0f -->\n<style>\n.ybocs-quiz-container {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n line-height: 1.6;\n color: #333;\n max-width: 750px;\n margin: 0 auto;\n}\n\n.quiz-section {\n min-height: 100vh;\n display: flex;\n align-items: center;\n}\n\n.quiz-section.active {\n display: flex !important;\n}\n\n.feature-icon {\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.feature-icon:hover {\n transform: translateY(-5px);\n box-shadow: 0 10px 20px rgba(0,0,0,0.1);\n}\n\n.question-title {\n font-size: 22px !important;\n font-weight: bold;\n color: #2c3e50;\n}\n\n.option-card {\n border: 2px solid #e9ecef;\n border-radius: 12px;\n transition: all 0.3s ease;\n cursor: pointer;\n background: white;\n padding: 1rem;\n}\n\n.option-card:hover {\n border-color: #007bff;\n background-color: #f8f9fa;\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,123,255,0.15);\n}\n\n.option-card.selected {\n border-color: #007bff;\n background-color: #007bff;\n color: white;\n box-shadow: 0 4px 12px rgba(0,123,255,0.3);\n}\n\n.option-indicator {\n width: 24px;\n height: 24px;\n border: 2px solid #dee2e6;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.3s ease;\n flex-shrink: 0;\n}\n\n.option-card:hover .option-indicator {\n border-color: #007bff;\n}\n\n.option-card.selected .option-indicator {\n background-color: white;\n border-color: white;\n}\n\n.option-text {\n font-size: 18px;\n font-weight: 500;\n flex-grow: 1;\n}\n\n.option-card.selected .option-text {\n color: white;\n}\n\n.progress {\n border-radius: 10px;\n overflow: hidden;\n}\n\n.progress-bar {\n transition: width 0.6s ease;\n border-radius: 10px;\n}\n\n.card {\n border-radius: 15px;\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n\n.card:hover {\n transform: translateY(-2px);\n box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;\n}\n\n.btn {\n border-radius: 8px;\n transition: all 0.3s ease;\n}\n\n.btn:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n\n.severity-level {\n transition: all 0.3s ease;\n}\n\n.chart-container {\n position: relative;\n width: 100%;\n}\n\n.bg-orange {\n background-color: #fd7e14 !important;\n}\n\n.border-orange {\n border-color: #fd7e14 !important;\n}\n\n.dimension-card {\n background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);\n border-radius: 12px;\n padding: 1.5rem;\n text-align: center;\n transition: transform 0.3s ease;\n}\n\n.dimension-card:hover {\n transform: translateY(-3px);\n}\n\n.dimension-score {\n font-size: 2rem;\n font-weight: bold;\n color: #007bff;\n}\n\n.dimension-label {\n font-size: 1.1rem;\n font-weight: 600;\n color: #495057;\n margin-bottom: 0.5rem;\n}\n\n.dimension-desc {\n font-size: 0.9rem;\n color: #6c757d;\n}\n\n.severity-card {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border-radius: 12px;\n padding: 1.5rem;\n text-align: center;\n transition: transform 0.3s ease;\n border: 2px solid #e9ecef;\n}\n\n.severity-card:hover {\n transform: translateY(-3px);\n}\n\n.severity-badge {\n font-size: 1.1rem;\n font-weight: bold;\n padding: 0.5rem 1rem;\n border-radius: 20px;\n}\n\n.severity-score {\n font-size: 1.5rem;\n font-weight: bold;\n margin: 0.5rem 0;\n}\n\n.severity-label {\n font-size: 1rem;\n font-weight: 600;\n margin-bottom: 0.5rem;\n}\n\n.severity-desc {\n font-size: 0.85rem;\n color: #6c757d;\n}\n\n#skip-notice {\n animation: slideIn 0.3s ease-out;\n}\n\n@keyframes slideIn {\n from {\n   opacity: 0;\n   transform: translateY(-10px);\n }\n to {\n   opacity: 1;\n   transform: translateY(0);\n }\n}\n\n@media (max-width: 768px) {\n .ybocs-quiz-container {\n   padding: 0 15px;\n }\n \n .quiz-section {\n   min-height: auto;\n   padding: 2rem 0;\n }\n \n .display-4 {\n   font-size: 2rem;\n }\n \n .display-5 {\n   font-size: 1.75rem;\n }\n \n .question-title {\n   font-size: 20px !important;\n }\n \n .option-text {\n   font-size: 16px;\n }\n \n .option-card {\n   padding: 0.875rem;\n }\n \n .chart-legend .col-3 {\n   margin-bottom: 1rem;\n }\n}\n\n.fade-transition {\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.fade-transition.show {\n opacity: 1;\n}\n<\/style>\n\n<!-- JavaScript \u884c\u70ba -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<script>\n(() => {\n 'use strict';\n\n class YBOCSQuiz {\n   constructor() {\n     this.currentQuestion = 0;\n     this.answers = [];\n     this.chartInstance = null;\n     this.totalQuestions = 10;\n     this.skippedToCompulsion = false; \/\/ \u662f\u5426\u8df3\u904e\u5f37\u8feb\u601d\u60f3\u90e8\u5206\n     this.skippedToResult = false; \/\/ \u662f\u5426\u8df3\u904e\u5f37\u8feb\u884c\u70ba\u90e8\u5206\n     \n     \/\/ \u5feb\u53d6 DOM \u5143\u7d20\n     this.elements = {\n       introSection: document.getElementById('quizintro9'),\n       quizSection: document.getElementById('quizmain9'),\n       resultSection: document.getElementById('quizresult9'),\n       progressBar: document.querySelector('.progress-bar'),\n       currentQuestionSpan: document.querySelector('[data-current]'),\n       totalQuestionSpan: document.querySelector('[data-total]'),\n       questionTitle: document.querySelector('.question-title'),\n       optionsContainer: document.querySelector('.options-container'),\n       prevBtn: document.querySelector('[data-action=\"prev-question\"]'),\n       skipNotice: document.getElementById('skip-notice'),\n       skipNoticeText: document.getElementById('skip-notice-text'),\n       totalScoreElement: document.querySelector('[data-total-score]'),\n       severityLevelElement: document.querySelector('[data-severity-level]'),\n       resultDescriptionElement: document.querySelector('[data-result-description]'),\n       severityAssessmentElement: document.querySelector('[data-severity-assessment]'),\n       dimensionAnalysisElement: document.querySelector('[data-dimension-analysis]'),\n       personalizedAdviceElement: document.querySelector('[data-personalized-advice]'),\n       chartCanvas: document.getElementById('distributionChart')\n     };\n     \n     this.questions = [\n       {\n         text: \"\u60a8\u6bcf\u5929\u82b1\u591a\u5c11\u6642\u9593\u5728\u5f37\u8feb\u6027\u601d\u60f3\u4e0a\uff1f\u6bcf\u5929\u51fa\u73fe\u5f37\u8feb\u6027\u601d\u60f3\u7684\u983b\u7387\u6709\u591a\u9ad8\uff1f\",\n         category: \"obsession_time\",\n         isSkipTrigger: true, \/\/ \u6a19\u8a18\u70ba\u8df3\u984c\u89f8\u767c\u554f\u984c\n         skipValue: 0, \/\/ \u8df3\u984c\u7684\u9078\u9805\u503c\n         skipTarget: 5, \/\/ \u8df3\u5230\u7b2c6\u984c\uff08\u7d22\u5f155\uff09\n         options: [\n           { value: 0, text: \"\u5b8c\u5168\u7121\u5f37\u8feb\u6027\u601d\u60f3\" },\n           { value: 1, text: \"\u8f15\u5fae\uff08\u5c11\u65bc1\u5c0f\u6642\uff09\uff0c\u6216\u5076\u723e\u6709\" },\n           { value: 2, text: \"\u4e2d\u5ea6\uff081\u81f33\u5c0f\u6642\uff09\uff0c\u6216\u5e38\u5e38\u6709\" },\n           { value: 3, text: \"\u91cd\u5ea6\uff08\u591a\u65bc3\u5c0f\u6642\u4f46\u4e0d\u8d85\u904e8\u5c0f\u6642\uff09\uff0c\u6216\u975e\u5e38\u9ad8\u983b\u7387\" },\n           { value: 4, text: \"\u6975\u5ea6\uff08\u591a\u65bc8\u5c0f\u6642\uff09\uff0c\u6216\u5e7e\u4e4e\u7121\u6642\u7121\u523b\u90fd\u6709\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u7684\u5f37\u8feb\u6027\u601d\u60f3\u5c0d\u793e\u4ea4\u3001\u5b78\u696d\u6210\u5c31\u6216\u5de5\u4f5c\u80fd\u529b\u6709\u591a\u5927\u7684\u59a8\u7919\uff1f\",\n         category: \"obsession_interference\",\n         options: [\n           { value: 0, text: \"\u4e0d\u6703\u53d7\u59a8\u7919\" },\n           { value: 1, text: \"\u8f15\u5fae\u3002\u7a0d\u5fae\u59a8\u7919\u793e\u4ea4\u6216\u5de5\u4f5c\u6d3b\u52d5\uff0c\u4f46\u6574\u9ad4\u8868\u73fe\u4e26\u672a\u59a8\u7919\" },\n           { value: 2, text: \"\u4e2d\u5ea6\u3002\u78ba\u5be6\u59a8\u7919\u793e\u4ea4\u6216\u5de5\u4f5c\u6d3b\u52d5\uff0c\u4f46\u4ecd\u53ef\u61c9\u4ed8\" },\n           { value: 3, text: \"\u91cd\u5ea6\u3002\u5c0e\u81f4\u793e\u4ea4\u6216\u5de5\u4f5c\u8868\u73fe\u9020\u6210\u969c\u7919\" },\n           { value: 4, text: \"\u6975\u5ea6\u3002\u7121\u80fd\u529b\u61c9\u4ed8\u793e\u4ea4\u6216\u5de5\u4f5c\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u7684\u5f37\u8feb\u6027\u601d\u60f3\u7d66\u60a8\u5e36\u4f86\u591a\u5927\u7684\u82e6\u60f1\u6216\u56f0\u64fe\uff1f\",\n         category: \"obsession_distress\",\n         options: [\n           { value: 0, text: \"\u6c92\u6709\" },\n           { value: 1, text: \"\u8f15\u5fae\u3002\u4e0d\u6703\u592a\u7169\u4eba\" },\n           { value: 2, text: \"\u4e2d\u5ea6\u3002\u89ba\u5f97\u5f88\u7169\uff0c\u4f46\u5c1a\u53ef\u61c9\u4ed8\" },\n           { value: 3, text: \"\u91cd\u5ea6\u3002\u975e\u5e38\u7169\u4eba\" },\n           { value: 4, text: \"\u6975\u5ea6\u3002\u5e7e\u4e4e\u4e00\u76f4\u6301\u7e8c\u4e14\u4ee4\u4eba\u6cae\u55aa\u82e6\u60f1\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u6709\u591a\u52aa\u529b\u5c0d\u6297\u5f37\u8feb\u6027\u601d\u60f3\uff1f\u60a8\u662f\u5426\u5617\u8a66\u8f49\u79fb\u6ce8\u610f\u529b\u6216\u4e0d\u53bb\u60f3\u5b83\u5462\uff1f\",\n         category: \"obsession_resistance\",\n         options: [\n           { value: 0, text: \"\u4e00\u76f4\u4e0d\u65b7\u5730\u52aa\u529b\u8207\u4e4b\u5c0d\u6297\uff08\u6216\u75c7\u72c0\u5f88\u8f15\u5fae\uff0c\u4e0d\u9700\u8981\u7a4d\u6975\u5730\u5c0d\u6297\uff09\" },\n           { value: 1, text: \"\u5927\u90e8\u5206\u6642\u9593\u90fd\u8a66\u5716\u8207\u4e4b\u5c0d\u6297\uff08\u8d85\u904e\u4e00\u534a\u7684\u6642\u9593\u6211\u90fd\u8a66\u5716\u8207\u4e4b\u5c0d\u6297\uff09\" },\n           { value: 2, text: \"\u7528\u4e9b\u8a31\u52aa\u529b\u53bb\u5c0d\u6297\" },\n           { value: 3, text: \"\u5c48\u670d\u65bc\u6240\u6709\u7684\u5f37\u8feb\u601d\u8003\uff0c\u672a\u8a66\u5716\u5c0d\u6297\uff0c\u4f46\u4ecd\u6709\u4e00\u4e9b\u4e0d\u7518\u5fc3\" },\n           { value: 4, text: \"\u5b8c\u5168\u9858\u610f\u5c48\u670d\u65bc\u5f37\u8feb\u6027\u601d\u60f3\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u63a7\u5236\u5f37\u8feb\u6027\u601d\u60f3\u7684\u80fd\u529b\u6709\u591a\u5c11\uff1f\u60a8\u505c\u6b62\u6216\u8f49\u79fb\u5f37\u8feb\u6027\u601d\u60f3\u7684\u6548\u679c\u5982\u4f55\uff1f\",\n         category: \"obsession_control\",\n         options: [\n           { value: 0, text: \"\u5b8c\u5168\u63a7\u5236\u3002\u6211\u53ef\u4ee5\u5b8c\u5168\u63a7\u5236\" },\n           { value: 1, text: \"\u5927\u591a\u80fd\u63a7\u5236\u3002\u53ea\u8981\u82b1\u4e9b\u529b\u6c23\u8207\u6ce8\u610f\u529b\uff0c\u5373\u80fd\u505c\u6b62\u6216\u8f49\u79fb\u5f37\u8feb\u6027\u601d\u60f3\" },\n           { value: 2, text: \"\u4e2d\u7b49\u5ea6\u63a7\u5236\u3002\u300c\u6709\u6642\u300d\u80fd\u505c\u6b62\u6216\u8f49\u79fb\u5f37\u8feb\u6027\u601d\u60f3\" },\n           { value: 3, text: \"\u63a7\u5236\u529b\u5f31\u3002\u5f88\u5c11\u80fd\u6210\u529f\u5730\u505c\u6b62\u6216\u6d88\u9664\u5f37\u8feb\u6027\u601d\u60f3\uff0c\u53ea\u80fd\u8f49\u79fb\" },\n           { value: 4, text: \"\u7121\u6cd5\u63a7\u5236\u3002\u5b8c\u5168\u4e0d\u80fd\u81ea\u4e3b\uff0c\u9023\u8f49\u79fb\u4e00\u4e0b\u5f37\u8feb\u6027\u601d\u60f3\u7684\u80fd\u529b\u90fd\u6c92\u6709\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u6bcf\u5929\u82b1\u591a\u5c11\u6642\u9593\u5728\u5f37\u8feb\u884c\u70ba\u4e0a\uff1f\u6bcf\u5929\u505a\u51fa\u5f37\u8feb\u884c\u70ba\u7684\u983b\u7387\u6709\u591a\u9ad8\uff1f\",\n         category: \"compulsion_time\",\n         isSkipTrigger: true, \/\/ \u6a19\u8a18\u70ba\u8df3\u984c\u89f8\u767c\u554f\u984c\n         skipValue: 0, \/\/ \u8df3\u984c\u7684\u9078\u9805\u503c\n         skipTarget: 'result', \/\/ \u8df3\u5230\u7d50\u679c\u9801\n         options: [\n           { value: 0, text: \"\u5b8c\u5168\u7121\u5f37\u8feb\u884c\u70ba\" },\n           { value: 1, text: \"\u8f15\u5fae\uff08\u5c11\u65bc1\u5c0f\u6642\uff09\uff0c\u6216\u5076\u723e\u6709\" },\n           { value: 2, text: \"\u4e2d\u5ea6\uff081\u81f33\u5c0f\u6642\uff09\uff0c\u6216\u5e38\u5e38\u6709\" },\n           { value: 3, text: \"\u91cd\u5ea6\uff08\u591a\u65bc3\u5c0f\u6642\u4f46\u4e0d\u8d85\u904e8\u5c0f\u6642\uff09\uff0c\u6216\u975e\u5e38\u9ad8\u7684\u983b\u7387\" },\n           { value: 4, text: \"\u6975\u5ea6\uff08\u591a\u65bc8\u5c0f\u6642\uff09\uff0c\u6216\u5e7e\u4e4e\u7121\u6642\u7121\u523b\u90fd\u6709\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u7684\u5f37\u8feb\u884c\u70ba\u5c0d\u793e\u4ea4\u3001\u5b78\u696d\u6210\u5c31\u6216\u5de5\u4f5c\u80fd\u529b\u6709\u591a\u5927\u7684\u59a8\u7919\uff1f\",\n         category: \"compulsion_interference\",\n         options: [\n           { value: 0, text: \"\u4e0d\u6703\u53d7\u59a8\u7919\" },\n           { value: 1, text: \"\u8f15\u5fae\u3002\u7a0d\u5fae\u59a8\u7919\u793e\u4ea4\u6216\u5de5\u4f5c\u6d3b\u52d5\uff0c\u4f46\u6574\u9ad4\u8868\u73fe\u4e26\u672a\u59a8\u7919\" },\n           { value: 2, text: \"\u4e2d\u5ea6\u3002\u78ba\u5be6\u59a8\u7919\u793e\u4ea4\u6216\u5de5\u4f5c\u8868\u73fe\uff0c\u4f46\u4ecd\u53ef\u61c9\u4ed8\" },\n           { value: 3, text: \"\u56b4\u91cd\u3002\u5c0e\u81f4\u793e\u4ea4\u6216\u5de5\u4f5c\u8868\u73fe\u9020\u6210\u969c\u7919\" },\n           { value: 4, text: \"\u6975\u5ea6\u3002\u7121\u80fd\u529b\u61c9\u4ed8\u793e\u4ea4\u6216\u5de5\u4f5c\" }\n         ]\n       },\n       {\n         text: \"\u5047\u5982\u88ab\u5236\u6b62\u9032\u884c\u5f37\u8feb\u884c\u70ba\u6642\uff0c\u60a8\u6709\u751a\u9ebc\u611f\u89ba\uff1f\u60a8\u6703\u6709\u591a\u7126\u616e\uff1f\",\n         category: \"compulsion_distress\",\n         options: [\n           { value: 0, text: \"\u6c92\u6709\u7126\u616e\" },\n           { value: 1, text: \"\u8f15\u5fae\u3002\u5047\u5982\u5f37\u8feb\u884c\u70ba\u88ab\u963b\u6b62\uff0c\u53ea\u662f\u7a0d\u5fae\u7126\u616e\" },\n           { value: 2, text: \"\u4e2d\u5ea6\u3002\u5047\u5982\u5f37\u8feb\u884c\u70ba\u88ab\u963b\u6b62\uff0c\u6703\u6709\u4e2d\u7b49\u7a0b\u5ea6\u7684\u7126\u616e\uff0c\u4f46\u662f\u4ecd\u53ef\u4ee5\u61c9\u4ed8\" },\n           { value: 3, text: \"\u56b4\u91cd\u3002\u5047\u5982\u5f37\u8feb\u884c\u70ba\u88ab\u963b\u6b62\uff0c\u6703\u660e\u986f\u4e14\u56f0\u64fe\u5730\u589e\u52a0\u7126\u616e\" },\n           { value: 4, text: \"\u6975\u5ea6\u3002\u5047\u5982\u6709\u4efb\u4f55\u9700\u8981\u6539\u8b8a\u5f37\u8feb\u884c\u70ba\u7684\u8655\u7f6e\u6642\uff0c\u6703\u5c0e\u81f4\u6975\u5ea6\u5730\u7126\u616e\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u6709\u591a\u52aa\u529b\u53bb\u5c0d\u6297\u5f37\u8feb\u884c\u70ba\uff1f\u6216\u5617\u8a66\u505c\u6b62\u5f37\u8feb\u884c\u70ba\u7684\u983b\u7387\uff1f\",\n         category: \"compulsion_resistance\",\n         options: [\n           { value: 0, text: \"\u4e00\u76f4\u4e0d\u65b7\u52aa\u529b\u7684\u5c0d\u6297\uff08\u6216\u75c7\u72c0\u5f88\u8f15\u5fae\uff0c\u4e0d\u9700\u8981\u7a4d\u6975\u5730\u5c0d\u6297\uff09\" },\n           { value: 1, text: \"\u5927\u90e8\u5206\u6642\u9593\u80fd\u5617\u8a66\u8457\u53bb\u5c0d\u6297\uff08\u8d85\u904e\u4e00\u534a\u7684\u6642\u9593\uff0c\u6211\u90fd\u5728\u5617\u8a66\u5c0d\u6297\uff09\" },\n           { value: 2, text: \"\u53ea\u7528\u9ede\u52aa\u529b\u53bb\u5c0d\u6297\" },\n           { value: 3, text: \"\u5c48\u670d\u65bc\u6240\u6709\u7684\u5f37\u8feb\u884c\u70ba\uff0c\u6c92\u6709\u5617\u8a66\u53bb\u5c0d\u6297\u5b83\u5011\uff0c\u4f46\u6709\u4e00\u9ede\u4e0d\u7518\u5fc3\" },\n           { value: 4, text: \"\u5b8c\u5168\u9858\u610f\u5c48\u670d\u65bc\u5f37\u8feb\u884c\u70ba\" }\n         ]\n       },\n       {\n         text: \"\u60a8\u63a7\u5236\u5f37\u8feb\u884c\u70ba\u7684\u80fd\u529b\u6709\u591a\u5c11\uff1f\u60a8\u505c\u6b62\u5f37\u8feb\u884c\u70ba\u7684\u6548\u679c\u5982\u4f55\uff1f\",\n         category: \"compulsion_control\",\n         options: [\n           { value: 0, text: \"\u5b8c\u5168\u80fd\u63a7\u5236\u3002\u6211\u53ef\u4ee5\u5b8c\u5168\u63a7\u5236\" },\n           { value: 1, text: \"\u5927\u591a\u80fd\u63a7\u5236\u3002\u53ea\u8981\u4e00\u4e9b\u52aa\u529b\u8207\u610f\u5fd7\u529b\uff0c\u5c31\u80fd\u505c\u6b62\u5f37\u8feb\u884c\u70ba\" },\n           { value: 2, text: \"\u4e2d\u7b49\u5ea6\u63a7\u5236\u3002\u6709\u6642\u5019\u63a7\u5236\u5f37\u8feb\u884c\u70ba\uff0c\u6709\u4e00\u4e9b\u56f0\u96e3\" },\n           { value: 3, text: \"\u63a7\u5236\u529b\u5f31\u3002\u53ea\u80fd\u5fcd\u8010\u803d\u64f1\u4e00\u4e0b\u6642\u9593\uff0c\u4f46\u6700\u7d42\u9084\u662f\u5fc5\u9808\u5b8c\u6210\u5f37\u8feb\u884c\u70ba\" },\n           { value: 4, text: \"\u5b8c\u5168\u7121\u6cd5\u63a7\u5236\u3002\u9023\u803d\u64f1\u4e00\u4e0b\u7684\u80fd\u529b\u90fd\u6c92\u6709\" }\n         ]\n       }\n     ];\n     \n     this.init();\n   }\n\n   init() {\n     this.bindEvents();\n   }\n\n   bindEvents() {\n     \/\/ \u4fee\u5fa9\uff1a\u4f7f\u7528 bind(this) \u78ba\u4fdd\u6b63\u78ba\u7684 this \u4e0a\u4e0b\u6587\n     document.addEventListener('click', this.handleClick.bind(this));\n   }\n\n   \/\/ \u65b0\u589e\uff1a\u55ae\u7368\u7684\u9ede\u64ca\u8655\u7406\u65b9\u6cd5\n   handleClick(e) {\n     const action = e.target.dataset.action || e.target.closest('[data-action]')?.dataset.action;\n     \n     switch (action) {\n       case 'start-quiz':\n         this.startQuiz();\n         break;\n       case 'prev-question':\n         this.prevQuestion();\n         break;\n       case 'restart-quiz':\n         this.restartQuiz();\n         break;\n     }\n     \n     if (e.target.closest('.option-card')) {\n       this.selectOption(e.target.closest('.option-card'));\n     }\n   }\n\n   startQuiz() {\n     this.showSection('quiz9');\n     this.currentQuestion = 0;\n     this.answers = [];\n     this.skippedToCompulsion = false;\n     this.skippedToResult = false;\n     this.displayQuestion();\n     this.scrollToTop();\n   }\n\n   displayQuestion() {\n     const question = this.questions[this.currentQuestion];\n     \n     \/\/ \u8a08\u7b97\u5be6\u969b\u9032\u5ea6\uff08\u8003\u616e\u8df3\u984c\u60c5\u6cc1\uff09\n     let actualTotal = this.totalQuestions;\n     let actualCurrent = this.currentQuestion + 1;\n     \n     if (this.skippedToCompulsion) {\n       actualTotal = 5; \/\/ \u53ea\u5269\u5f37\u8feb\u884c\u70ba\u90e8\u5206\n       actualCurrent = this.currentQuestion - 4; \/\/ \u8abf\u6574\u986f\u793a\u7684\u7576\u524d\u984c\u865f\n     }\n     \n     \/\/ \u66f4\u65b0\u9032\u5ea6\n     const progress = (actualCurrent \/ actualTotal) * 100;\n     this.elements.progressBar.style.width = `${progress}%`;\n     this.elements.currentQuestionSpan.textContent = actualCurrent;\n     this.elements.totalQuestionSpan.textContent = actualTotal;\n     \n     \/\/ \u66f4\u65b0\u554f\u984c\n     this.elements.questionTitle.textContent = question.text;\n     \n     \/\/ \u6aa2\u67e5\u662f\u5426\u9700\u8981\u986f\u793a\u8df3\u984c\u63d0\u793a\n     if (question.isSkipTrigger) {\n       this.showSkipNotice(question);\n     } else {\n       this.hideSkipNotice();\n     }\n     \n     \/\/ \u751f\u6210\u9078\u9805\n     this.elements.optionsContainer.innerHTML = question.options\n       .map(option => `\n         <div class=\"option-card d-flex align-items-center\" data-value=\"${option.value}\">\n           <div class=\"option-indicator me-3\">\n             <i class=\"bi bi-check-lg text-primary\" style=\"display: none;\"><\/i>\n           <\/div>\n           <div class=\"option-text\">${option.text}<\/div>\n         <\/div>\n       `).join('');\n     \n     \/\/ \u63a7\u5236\u4e0a\u4e00\u984c\u6309\u9215\u986f\u793a\u908f\u8f2f\n     this.updatePrevButtonVisibility();\n     \n     \/\/ \u5982\u679c\u6709\u4e4b\u524d\u7684\u7b54\u6848\uff0c\u6062\u5fa9\u9078\u4e2d\u72c0\u614b\n     if (this.answers[this.currentQuestion] !== undefined) {\n       const selectedCard = this.elements.optionsContainer.querySelector(`[data-value=\"${this.answers[this.currentQuestion]}\"]`);\n       if (selectedCard) {\n         selectedCard.classList.add('selected');\n         selectedCard.querySelector('.bi-check-lg').style.display = 'block';\n       }\n     }\n   }\n\n   updatePrevButtonVisibility() {\n     let shouldShowPrev = false;\n     \n     if (this.currentQuestion === 0) {\n       \/\/ \u7b2c\u4e00\u984c\u4e0d\u986f\u793a\u4e0a\u4e00\u984c\u6309\u9215\n       shouldShowPrev = false;\n     } else if (this.skippedToCompulsion && this.currentQuestion === 5) {\n       \/\/ \u5982\u679c\u8df3\u984c\u5230\u7b2c6\u984c\uff0c\u7b2c6\u984c\u61c9\u8a72\u986f\u793a\u4e0a\u4e00\u984c\u6309\u9215\uff08\u53ef\u4ee5\u56de\u5230\u7b2c1\u984c\uff09\n       shouldShowPrev = true;\n     } else if (this.currentQuestion > 0) {\n       \/\/ \u5176\u4ed6\u60c5\u6cc1\u4e0b\uff0c\u53ea\u8981\u4e0d\u662f\u7b2c\u4e00\u984c\u90fd\u986f\u793a\n       shouldShowPrev = true;\n     }\n     \n     this.elements.prevBtn.classList.toggle('d-none', !shouldShowPrev);\n   }\n\n   showSkipNotice(question) {\n     let noticeText = '';\n     if (question.skipTarget === 5) {\n       noticeText = '\u82e5\u9078\u64c7\u300c\u5b8c\u5168\u7121\u5f37\u8feb\u6027\u601d\u60f3\u300d\uff0c\u5c07\u76f4\u63a5\u8df3\u5230\u7b2c6\u984c\u9032\u884c\u5f37\u8feb\u884c\u70ba\u8a55\u4f30\u3002';\n     } else if (question.skipTarget === 'result') {\n       noticeText = '\u82e5\u9078\u64c7\u300c\u5b8c\u5168\u7121\u5f37\u8feb\u884c\u70ba\u300d\uff0c\u5c07\u81ea\u52d5\u586b\u5165\u5f8c\u7e8c\u984c\u76ee\u7b54\u6848\u4e26\u76f4\u63a5\u8a08\u7b97\u7d50\u679c\u3002';\n     }\n     \n     this.elements.skipNoticeText.textContent = noticeText;\n     this.elements.skipNotice.classList.remove('d-none');\n   }\n\n   hideSkipNotice() {\n     this.elements.skipNotice.classList.add('d-none');\n   }\n\n   selectOption(optionCard) {\n     \/\/ \u79fb\u9664\u5176\u4ed6\u9078\u9805\u7684\u9078\u4e2d\u72c0\u614b\n     this.elements.optionsContainer.querySelectorAll('.option-card').forEach(card => {\n       card.classList.remove('selected');\n       card.querySelector('.bi-check-lg').style.display = 'none';\n     });\n     \n     \/\/ \u9078\u4e2d\u7576\u524d\u9078\u9805\n     optionCard.classList.add('selected');\n     optionCard.querySelector('.bi-check-lg').style.display = 'block';\n     \n     \/\/ \u4fdd\u5b58\u7b54\u6848\n     const selectedValue = parseInt(optionCard.dataset.value);\n     this.answers[this.currentQuestion] = selectedValue;\n     \n     \/\/ \u6aa2\u67e5\u8df3\u984c\u908f\u8f2f\n     const question = this.questions[this.currentQuestion];\n     const shouldSkip = question.isSkipTrigger && selectedValue === question.skipValue;\n     \n     \/\/ \u5ef6\u9072\u9032\u5165\u4e0b\u4e00\u984c\u6216\u8df3\u984c\n     setTimeout(() => {\n       if (shouldSkip) {\n         this.handleSkipLogic(question);\n       } else {\n         this.proceedToNext();\n       }\n     }, 500);\n   }\n\n   handleSkipLogic(question) {\n     if (question.skipTarget === 5) {\n       \/\/ \u7b2c1\u984c\u90780\uff0c\u8df3\u5230\u7b2c6\u984c\n       \/\/ \u5c07\u7b2c2-5\u984c\u7684\u7b54\u6848\u8a2d\u70ba0\n       for (let i = 1; i <= 4; i++) {\n         this.answers[i] = 0;\n       }\n       this.currentQuestion = 5;\n       this.skippedToCompulsion = true;\n       this.displayQuestion();\n     } else if (question.skipTarget === 'result') {\n       \/\/ \u7b2c6\u984c\u90780\uff0c\u8df3\u5230\u7d50\u679c\u9801\n       \/\/ \u5c07\u7b2c7-10\u984c\u7684\u7b54\u6848\u8a2d\u70ba0\n       for (let i = 6; i <= 9; i++) {\n         this.answers[i] = 0;\n       }\n       this.skippedToResult = true;\n       this.showResults();\n     }\n   }\n\n   proceedToNext() {\n     if (this.currentQuestion < this.questions.length - 1) {\n       this.currentQuestion++;\n       this.displayQuestion();\n     } else {\n       this.showResults();\n     }\n   }\n\n   prevQuestion() {\n     if (this.currentQuestion > 0) {\n       \/\/ \u7279\u6b8a\u8655\u7406\uff1a\u5982\u679c\u7576\u524d\u5728\u7b2c6\u984c\u4e14\u4e4b\u524d\u8df3\u904e\u4e86\u5f37\u8feb\u601d\u60f3\u90e8\u5206\uff0c\u8fd4\u56de\u7b2c1\u984c\n       if (this.currentQuestion === 5 && this.skippedToCompulsion) {\n         this.currentQuestion = 0;\n         this.skippedToCompulsion = false;\n         \/\/ \u6e05\u9664\u7b2c2-5\u984c\u7684\u81ea\u52d5\u586b\u5165\u7b54\u6848\uff0c\u8b93\u7528\u6236\u91cd\u65b0\u9078\u64c7\n         for (let i = 1; i <= 4; i++) {\n           delete this.answers[i];\n         }\n       } else {\n         this.currentQuestion--;\n       }\n       this.displayQuestion();\n     }\n   }\n\n   showResults() {\n     this.calculateResults();\n     this.showSection('result9');\n     this.scrollToTop();\n   }\n\n   calculateResults() {\n     const obsessionScore = this.answers.slice(0, 5).reduce((sum, score) => sum + score, 0);\n     const compulsionScore = this.answers.slice(5, 10).reduce((sum, score) => sum + score, 0);\n     const totalScore = obsessionScore + compulsionScore;\n     \n     \/\/ \u66f4\u65b0\u5206\u6578\u986f\u793a\n     this.elements.totalScoreElement.textContent = totalScore;\n     \n     \/\/ \u5224\u65b7\u56b4\u91cd\u7a0b\u5ea6\uff08\u4f7f\u7528\u96d9\u91cd\u8a55\u4f30\u6a19\u6e96\uff09\n     const severity = this.getSeverityLevel(totalScore, obsessionScore, compulsionScore);\n     this.displaySeverityLevel(severity);\n     this.displayResultDescription(severity, totalScore);\n     this.displaySeverityAssessment(obsessionScore, compulsionScore);\n     this.displayDimensionAnalysis();\n     this.displayPersonalizedAdvice();\n     \n     \/\/ \u5275\u5efa\u5716\u8868\n     this.createDistributionChart(totalScore);\n   }\n\n   \/\/ \u65b0\u589e\uff1a\u5206\u9805\u56b4\u91cd\u7a0b\u5ea6\u8a55\u4f30\u65b9\u6cd5\n   getIndividualSeverity(score) {\n     if (score <= 5) return 'none';\n     if (score >= 6 && score <= 9) return 'mild';\n     if (score >= 10 && score <= 14) return 'moderate';\n     if (score >= 15) return 'severe';\n     return 'none';\n   }\n\n   \/\/ \u4fee\u6539\uff1a\u4f7f\u7528\u96d9\u91cd\u8a55\u4f30\u6a19\u6e96\u7684\u56b4\u91cd\u7a0b\u5ea6\u5224\u65b7\n   getSeverityLevel(totalScore, obsessionScore, compulsionScore) {\n     \/\/ \u7e3d\u5206\u8a55\u4f30\n     let totalSeverity = 'none';\n     if (totalScore <= 5) totalSeverity = 'none';\n     else if (totalScore <= 15) totalSeverity = 'mild';\n     else if (totalScore <= 25) totalSeverity = 'moderate';\n     else totalSeverity = 'severe';\n     \n     \/\/ \u5206\u9805\u8a55\u4f30\n     const obsessionSeverity = this.getIndividualSeverity(obsessionScore);\n     const compulsionSeverity = this.getIndividualSeverity(compulsionScore);\n     \n     \/\/ \u53d6\u8f03\u56b4\u91cd\u7684\u7b49\u7d1a\u4f5c\u70ba\u6700\u7d42\u8a55\u4f30\n     const severityLevels = ['none', 'mild', 'moderate', 'severe'];\n     const maxSeverityIndex = Math.max(\n       severityLevels.indexOf(totalSeverity),\n       severityLevels.indexOf(obsessionSeverity),\n       severityLevels.indexOf(compulsionSeverity)\n     );\n     \n     return severityLevels[maxSeverityIndex];\n   }\n\n   displaySeverityLevel(severity) {\n     const severityConfig = {\n       none: { text: '\u7121\u5f37\u8feb\u75c7\u72c0', class: 'border-success', bgClass: 'bg-success bg-opacity-10' },\n       mild: { text: '\u8f15\u5ea6\u56b4\u91cd', class: 'border-warning', bgClass: 'bg-warning bg-opacity-10' },\n       moderate: { text: '\u4e2d\u7b49\u56b4\u91cd', class: 'border-orange', bgClass: 'bg-orange bg-opacity-10' },\n       severe: { text: '\u975e\u5e38\u56b4\u91cd', class: 'border-danger', bgClass: 'bg-danger bg-opacity-10' }\n     };\n     \n     const config = severityConfig[severity];\n     this.elements.severityLevelElement.className = `severity-level p-3 rounded border-start border-4 ${config.class} ${config.bgClass}`;\n     this.elements.severityLevelElement.innerHTML = `<strong class=\"fs-5\">${config.text}<\/strong>`;\n   }\n\n   \/\/ \u65b0\u589e\uff1a\u986f\u793a\u5206\u9805\u56b4\u91cd\u7a0b\u5ea6\u8a55\u4f30\n   displaySeverityAssessment(obsessionScore, compulsionScore) {\n     const obsessionSeverity = this.getIndividualSeverity(obsessionScore);\n     const compulsionSeverity = this.getIndividualSeverity(compulsionScore);\n     \n     const getSeverityConfig = (severity, score) => {\n       const configs = {\n         none: { \n           text: '\u7121\u75c7\u72c0', \n           badge: 'bg-success', \n           desc: '\u6c92\u6709\u660e\u986f\u75c7\u72c0',\n           border: 'border-success'\n         },\n         mild: { \n           text: '\u8f15\u5ea6\u56b4\u91cd', \n           badge: 'bg-warning', \n           desc: '6-9\u5206\uff0c\u75c7\u72c0\u8f15\u5fae\u4f46\u5df2\u958b\u59cb\u5f71\u97ff\u751f\u6d3b',\n           border: 'border-warning'\n         },\n         moderate: { \n           text: '\u4e2d\u7b49\u56b4\u91cd', \n           badge: 'bg-orange', \n           desc: '10-14\u5206\uff0c\u75c7\u72c0\u660e\u986f\uff0c\u5c0d\u751f\u6d3b\u9020\u6210\u4e2d\u7b49\u7a0b\u5ea6\u5f71\u97ff',\n           border: 'border-orange'\n         },\n         severe: { \n           text: '\u975e\u5e38\u56b4\u91cd', \n           badge: 'bg-danger', \n           desc: '15\u5206\u4ee5\u4e0a\uff0c\u75c7\u72c0\u56b4\u91cd\uff0c\u56b4\u91cd\u5f71\u97ff\u65e5\u5e38\u529f\u80fd',\n           border: 'border-danger'\n         }\n       };\n       return configs[severity];\n     };\n     \n     const obsessionConfig = getSeverityConfig(obsessionSeverity, obsessionScore);\n     const compulsionConfig = getSeverityConfig(compulsionSeverity, compulsionScore);\n     \n     this.elements.severityAssessmentElement.innerHTML = `\n       <div class=\"col-md-6 mb-3\">\n         <div class=\"severity-card ${obsessionConfig.border}\">\n           <div class=\"severity-label\">\u5f37\u8feb\u601d\u60f3\u56b4\u91cd\u7a0b\u5ea6<\/div>\n           <div class=\"severity-score\">${obsessionScore}\u5206<\/div>\n           <span class=\"severity-badge ${obsessionConfig.badge} text-white\">${obsessionConfig.text}<\/span>\n           <div class=\"severity-desc mt-2\">${obsessionConfig.desc}<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-md-6 mb-3\">\n         <div class=\"severity-card ${compulsionConfig.border}\">\n           <div class=\"severity-label\">\u5f37\u8feb\u884c\u70ba\u56b4\u91cd\u7a0b\u5ea6<\/div>\n           <div class=\"severity-score\">${compulsionScore}\u5206<\/div>\n           <span class=\"severity-badge ${compulsionConfig.badge} text-white\">${compulsionConfig.text}<\/span>\n           <div class=\"severity-desc mt-2\">${compulsionConfig.desc}<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-12\">\n         <div class=\"alert alert-info\">\n           <i class=\"bi bi-info-circle me-2\"><\/i>\n           <strong>\u8a55\u4f30\u8aaa\u660e\uff1a<\/strong>\u672c\u8a55\u4f30\u63a1\u7528\u96d9\u91cd\u6a19\u6e96\uff0c\u65e2\u8003\u616e\u7e3d\u5206\u7bc4\u570d\uff0c\u4e5f\u5206\u5225\u8a55\u4f30\u5f37\u8feb\u601d\u60f3\u548c\u5f37\u8feb\u884c\u70ba\u7684\u56b4\u91cd\u7a0b\u5ea6\uff0c\u4ee5\u63d0\u4f9b\u66f4\u7cbe\u78ba\u7684\u8a3a\u65b7\u53c3\u8003\u3002\n         <\/div>\n       <\/div>\n     `;\n   }\n\n   displayResultDescription(severity, totalScore) {\n     const descriptions = {\n       none: '\u60a8\u76ee\u524d\u6c92\u6709\u660e\u986f\u7684\u5f37\u8feb\u75c7\u72c0\uff0c\u5fc3\u7406\u72c0\u614b\u826f\u597d\u3002',\n       mild: '\u60a8\u6709\u8f15\u5ea6\u7684\u5f37\u8feb\u75c7\u72c0\uff0c\u75c7\u72c0\u5df2\u7d93\u5c0d\u751f\u6d3b\u3001\u5b78\u7fd2\u6216\u5de5\u4f5c\u958b\u59cb\u9020\u6210\u4e00\u5b9a\u7684\u5f71\u97ff\uff0c\u75c7\u72c0\u6703\u96a8\u8457\u74b0\u5883\u548c\u60c5\u7dd2\u7684\u8b8a\u5316\u800c\u6ce2\u52d5\u3002',\n       moderate: '\u60a8\u6709\u4e2d\u7b49\u7a0b\u5ea6\u7684\u5f37\u8feb\u75c7\u72c0\uff0c\u75c7\u72c0\u7684\u983b\u7387\u6216\u56b4\u91cd\u7a0b\u5ea6\u5df2\u7d93\u5c0d\u751f\u6d3b\u3001\u5b78\u7fd2\u6216\u8077\u696d\u9020\u6210\u969c\u7919\uff0c\u53ef\u80fd\u7121\u6cd5\u6709\u6548\u57f7\u884c\u539f\u6709\u7684\u65e5\u5e38\u904b\u4f5c\u3002',\n       severe: '\u60a8\u7684\u5f37\u8feb\u75c7\u72c0\u5df2\u7d93\u975e\u5e38\u56b4\u91cd\uff0c\u5b8c\u5168\u7121\u6cd5\u57f7\u884c\u539f\u6709\u7684\u65e5\u5e38\u904b\u4f5c\uff0c\u751a\u81f3\u9023\u8863\u98df\u4f4f\u884c\u7b49\u751f\u6d3b\u529f\u80fd\u90fd\u7121\u6cd5\u9032\u884c\u3002'\n     };\n     \n     let skipInfo = '';\n     if (this.skippedToCompulsion && this.skippedToResult) {\n       skipInfo = '<div class=\"alert alert-success mt-2\"><i class=\"bi bi-info-circle me-2\"><\/i>\u6e2c\u9a57\u986f\u793a\u60a8\u6c92\u6709\u660e\u986f\u7684\u5f37\u8feb\u601d\u60f3\u548c\u5f37\u8feb\u884c\u70ba\u75c7\u72c0\u3002<\/div>';\n     } else if (this.skippedToCompulsion) {\n       skipInfo = '<div class=\"alert alert-info mt-2\"><i class=\"bi bi-info-circle me-2\"><\/i>\u60a8\u6c92\u6709\u660e\u986f\u7684\u5f37\u8feb\u601d\u60f3\u75c7\u72c0\uff0c\u6e2c\u9a57\u91cd\u9ede\u8a55\u4f30\u4e86\u5f37\u8feb\u884c\u70ba\u90e8\u5206\u3002<\/div>';\n     } else if (this.skippedToResult) {\n       skipInfo = '<div class=\"alert alert-info mt-2\"><i class=\"bi bi-info-circle me-2\"><\/i>\u60a8\u6c92\u6709\u660e\u986f\u7684\u5f37\u8feb\u884c\u70ba\u75c7\u72c0\uff0c\u4f46\u5b58\u5728\u4e00\u5b9a\u7a0b\u5ea6\u7684\u5f37\u8feb\u601d\u60f3\u3002<\/div>';\n     }\n     \n     this.elements.resultDescriptionElement.innerHTML = `\n       <p class=\"mb-3\">${descriptions[severity]}<\/p>\n       <div class=\"alert alert-info\">\n         <i class=\"bi bi-info-circle me-2\"><\/i>\n         <strong>\u7e3d\u5206\uff1a${totalScore}\u5206<\/strong> - \u9019\u500b\u5206\u6578\u53cd\u6620\u4e86\u60a8\u76ee\u524d\u5f37\u8feb\u75c7\u72c0\u7684\u6574\u9ad4\u56b4\u91cd\u7a0b\u5ea6\u3002\n       <\/div>\n       ${skipInfo}\n     `;\n   }\n\n   displayDimensionAnalysis() {\n     const obsessionScore = this.answers.slice(0, 5).reduce((sum, score) => sum + score, 0);\n     const compulsionScore = this.answers.slice(5, 10).reduce((sum, score) => sum + score, 0);\n     \n     \/\/ \u8a08\u7b97\u5404\u500b\u7dad\u5ea6\u7684\u5206\u6578\n     const dimensions = {\n       timeFreq: (this.answers[0] + this.answers[5]) \/ 2,\n       interference: (this.answers[1] + this.answers[6]) \/ 2,\n       distress: (this.answers[2] + this.answers[7]) \/ 2,\n       resistance: (this.answers[3] + this.answers[8]) \/ 2,\n       control: (this.answers[4] + this.answers[9]) \/ 2\n     };\n     \n     this.elements.dimensionAnalysisElement.innerHTML = `\n       <div class=\"col-md-6 mb-3\">\n         <div class=\"dimension-card\">\n           <div class=\"dimension-score\">${obsessionScore}<\/div>\n           <div class=\"dimension-label\">\u5f37\u8feb\u601d\u60f3<\/div>\n           <div class=\"dimension-desc\">\u601d\u60f3\u4fb5\u5165\u7684\u983b\u7387\u548c\u5f37\u5ea6<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-md-6 mb-3\">\n         <div class=\"dimension-card\">\n           <div class=\"dimension-score\">${compulsionScore}<\/div>\n           <div class=\"dimension-label\">\u5f37\u8feb\u884c\u70ba<\/div>\n           <div class=\"dimension-desc\">\u91cd\u8907\u884c\u70ba\u7684\u983b\u7387\u548c\u56b4\u91cd\u5ea6<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-md-4 mb-3\">\n         <div class=\"dimension-card\">\n           <div class=\"dimension-score\">${Math.round(dimensions.timeFreq * 10) \/ 10}<\/div>\n           <div class=\"dimension-label\">\u6642\u9593\u983b\u7387<\/div>\n           <div class=\"dimension-desc\">\u75c7\u72c0\u4f54\u7528\u6642\u9593\u7a0b\u5ea6<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-md-4 mb-3\">\n         <div class=\"dimension-card\">\n           <div class=\"dimension-score\">${Math.round(dimensions.interference * 10) \/ 10}<\/div>\n           <div class=\"dimension-label\">\u529f\u80fd\u969c\u7919<\/div>\n           <div class=\"dimension-desc\">\u5c0d\u65e5\u5e38\u751f\u6d3b\u7684\u5f71\u97ff<\/div>\n         <\/div>\n       <\/div>\n       <div class=\"col-md-4 mb-3\">\n         <div class=\"dimension-card\">\n           <div class=\"dimension-score\">${Math.round(dimensions.control * 10) \/ 10}<\/div>\n           <div class=\"dimension-label\">\u63a7\u5236\u80fd\u529b<\/div>\n           <div class=\"dimension-desc\">\u81ea\u6211\u8abf\u7bc0\u75c7\u72c0\u7684\u80fd\u529b<\/div>\n         <\/div>\n       <\/div>\n     `;\n   }\n\n   displayPersonalizedAdvice() {\n     const obsessionScore = this.answers.slice(0, 5).reduce((sum, score) => sum + score, 0);\n     const compulsionScore = this.answers.slice(5, 10).reduce((sum, score) => sum + score, 0);\n     const totalScore = obsessionScore + compulsionScore;\n     \n     \/\/ \u7372\u53d6\u5206\u9805\u56b4\u91cd\u7a0b\u5ea6\n     const obsessionSeverity = this.getIndividualSeverity(obsessionScore);\n     const compulsionSeverity = this.getIndividualSeverity(compulsionScore);\n     \n     let adviceContent = '';\n     \n     \/\/ \u57fa\u65bc\u8df3\u984c\u60c5\u6cc1\u7684\u7279\u6b8a\u5efa\u8b70\n     if (this.skippedToCompulsion && this.skippedToResult) {\n       adviceContent += `\n         <div class=\"alert alert-success mb-3\">\n           <h5><i class=\"bi bi-check-circle me-2\"><\/i>\u7121\u75c7\u72c0\u72c0\u614b<\/h5>\n           <p class=\"mb-2\">\u60a8\u76ee\u524d\u6c92\u6709\u660e\u986f\u7684\u5f37\u8feb\u75c7\u72c0\uff0c\u9019\u662f\u5f88\u597d\u7684\u72c0\u614b\u3002\u5efa\u8b70\uff1a<\/p>\n           <ul class=\"mb-0\">\n             <li>\u7dad\u6301\u898f\u5f8b\u7684\u751f\u6d3b\u4f5c\u606f\u548c\u5065\u5eb7\u7684\u751f\u6d3b\u65b9\u5f0f<\/li>\n             <li>\u5b78\u7fd2\u58d3\u529b\u7ba1\u7406\u548c\u60c5\u7dd2\u8abf\u7bc0\u6280\u5de7<\/li>\n             <li>\u4fdd\u6301\u826f\u597d\u7684\u793e\u4ea4\u95dc\u4fc2\u548c\u652f\u6301\u7cfb\u7d71<\/li>\n             <li>\u5b9a\u671f\u9032\u884c\u81ea\u6211\u5fc3\u7406\u5065\u5eb7\u6aa2\u67e5<\/li>\n           <\/ul>\n         <\/div>\n       `;\n     } else {\n       \/\/ \u57fa\u65bc\u5206\u9805\u56b4\u91cd\u7a0b\u5ea6\u7684\u5efa\u8b70\n       if (obsessionSeverity !== 'none' && compulsionSeverity === 'none') {\n         adviceContent += `\n           <div class=\"alert alert-info mb-3\">\n             <h5><i class=\"bi bi-brain me-2\"><\/i>\u5f37\u8feb\u601d\u60f3\u70ba\u4e3b (${obsessionScore}\u5206 - ${obsessionSeverity === 'mild' ? '\u8f15\u5ea6' : obsessionSeverity === 'moderate' ? '\u4e2d\u5ea6' : '\u91cd\u5ea6'})<\/h5>\n             <p class=\"mb-2\">\u60a8\u4e3b\u8981\u8868\u73fe\u70ba\u5f37\u8feb\u601d\u60f3\u75c7\u72c0\uff0c\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u5b78\u7fd2\u8a8d\u77e5\u91cd\u69cb\u6280\u5de7\uff0c\u6311\u6230\u4e0d\u5408\u7406\u601d\u60f3<\/li>\n               <li>\u7df4\u7fd2\u6b63\u5ff5\u51a5\u60f3\uff0c\u89c0\u5bdf\u601d\u60f3\u800c\u4e0d\u8a55\u5224<\/li>\n               <li>\u4f7f\u7528\u601d\u60f3\u505c\u6b62\u6cd5\uff0c\u6253\u65b7\u4fb5\u5165\u6027\u601d\u7dad<\/li>\n               <li>\u57f9\u990a\u6ce8\u610f\u529b\u8f49\u79fb\u7684\u5065\u5eb7\u6d3b\u52d5<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       } else if (compulsionSeverity !== 'none' && obsessionSeverity === 'none') {\n         adviceContent += `\n           <div class=\"alert alert-warning mb-3\">\n             <h5><i class=\"bi bi-arrow-repeat me-2\"><\/i>\u5f37\u8feb\u884c\u70ba\u70ba\u4e3b (${compulsionScore}\u5206 - ${compulsionSeverity === 'mild' ? '\u8f15\u5ea6' : compulsionSeverity === 'moderate' ? '\u4e2d\u5ea6' : '\u91cd\u5ea6'})<\/h5>\n             <p class=\"mb-2\">\u60a8\u4e3b\u8981\u8868\u73fe\u70ba\u5f37\u8feb\u884c\u70ba\u75c7\u72c0\uff0c\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u7df4\u7fd2\u66b4\u9732\u53cd\u61c9\u9810\u9632\u6cbb\u7642\uff08ERP\uff09<\/li>\n               <li>\u9010\u6b65\u6e1b\u5c11\u5100\u5f0f\u5316\u884c\u70ba\u7684\u983b\u7387<\/li>\n               <li>\u5efa\u7acb\u65b0\u7684\u61c9\u5c0d\u7b56\u7565\u53d6\u4ee3\u5f37\u8feb\u884c\u70ba<\/li>\n               <li>\u8a2d\u5b9a\u5177\u9ad4\u7684\u884c\u70ba\u6539\u8b8a\u76ee\u6a19<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       } else if (obsessionSeverity !== 'none' && compulsionSeverity !== 'none') {\n         adviceContent += `\n           <div class=\"alert alert-primary mb-3\">\n             <h5><i class=\"bi bi-balance-scale me-2\"><\/i>\u6df7\u5408\u578b\u75c7\u72c0<\/h5>\n             <p class=\"mb-2\">\u60a8\u540c\u6642\u5b58\u5728\u5f37\u8feb\u601d\u60f3(${obsessionScore}\u5206)\u548c\u5f37\u8feb\u884c\u70ba(${compulsionScore}\u5206)\u75c7\u72c0\uff0c\u9700\u8981\u7d9c\u5408\u6027\u6cbb\u7642\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u540c\u6642\u9032\u884c\u8a8d\u77e5\u6cbb\u7642\u548c\u884c\u70ba\u6cbb\u7642<\/li>\n               <li>\u5efa\u7acb\u5b8c\u6574\u7684\u75c7\u72c0\u7ba1\u7406\u8a08\u5283<\/li>\n               <li>\u5b78\u7fd2\u7d9c\u5408\u6027\u7684\u61c9\u5c0d\u7b56\u7565<\/li>\n               <li>\u5b9a\u671f\u8a55\u4f30\u6cbb\u7642\u9032\u5c55<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       }\n       \n       \/\/ \u57fa\u65bc\u6700\u9ad8\u56b4\u91cd\u7a0b\u5ea6\u7684\u7279\u6b8a\u5efa\u8b70\n       const maxSeverity = Math.max(\n         ['none', 'mild', 'moderate', 'severe'].indexOf(obsessionSeverity),\n         ['none', 'mild', 'moderate', 'severe'].indexOf(compulsionSeverity)\n       );\n       const maxSeverityLevel = ['none', 'mild', 'moderate', 'severe'][maxSeverity];\n       \n       if (maxSeverityLevel === 'severe') {\n         adviceContent += `\n           <div class=\"alert alert-danger mb-3\">\n             <h5><i class=\"bi bi-exclamation-triangle me-2\"><\/i>\u56b4\u91cd\u75c7\u72c0\u8b66\u793a<\/h5>\n             <p class=\"mb-2\">\u60a8\u7684\u75c7\u72c0\u5df2\u9054\u5230\u975e\u5e38\u56b4\u91cd\u7684\u7a0b\u5ea6\uff0c\u5f37\u70c8\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u7acb\u5373\u5c0b\u6c42\u5c08\u696d\u7cbe\u795e\u79d1\u91ab\u5e2b\u7684\u5354\u52a9<\/li>\n               <li>\u8003\u616e\u4f4f\u9662\u6cbb\u7642\u6216\u5bc6\u96c6\u9580\u8a3a\u6cbb\u7642<\/li>\n               <li>\u53ef\u80fd\u9700\u8981\u85e5\u7269\u6cbb\u7642\u914d\u5408\u5fc3\u7406\u6cbb\u7642<\/li>\n               <li>\u5bb6\u4eba\u670b\u53cb\u61c9\u63d0\u4f9b\u5145\u5206\u7684\u652f\u6301\u548c\u7406\u89e3<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       } else if (maxSeverityLevel === 'moderate') {\n         adviceContent += `\n           <div class=\"alert alert-warning mb-3\">\n             <h5><i class=\"bi bi-exclamation-circle me-2\"><\/i>\u4e2d\u5ea6\u75c7\u72c0\u9700\u8981\u95dc\u6ce8<\/h5>\n             <p class=\"mb-2\">\u60a8\u7684\u75c7\u72c0\u5df2\u9054\u5230\u4e2d\u7b49\u56b4\u91cd\u7a0b\u5ea6\uff0c\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u6cbb\u7642\u5e2b\u7684\u5354\u52a9<\/li>\n               <li>\u8003\u616e\u8a8d\u77e5\u884c\u70ba\u6cbb\u7642\uff08CBT\uff09\u6216\u66b4\u9732\u53cd\u61c9\u9810\u9632\u6cbb\u7642\uff08ERP\uff09<\/li>\n               <li>\u5efa\u7acb\u898f\u5f8b\u7684\u6cbb\u7642\u8a08\u5283<\/li>\n               <li>\u5b78\u7fd2\u6709\u6548\u7684\u61c9\u5c0d\u6280\u5de7<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       }\n       \n       \/\/ \u57fa\u65bc\u63a7\u5236\u80fd\u529b\u7684\u500b\u6027\u5316\u5efa\u8b70\n       const controlScore = (this.answers[4] + this.answers[9]) \/ 2;\n       if (controlScore >= 3) {\n         adviceContent += `\n           <div class=\"alert alert-danger mb-3\">\n             <h5><i class=\"bi bi-exclamation-triangle me-2\"><\/i>\u63a7\u5236\u80fd\u529b\u9700\u52a0\u5f37<\/h5>\n             <p class=\"mb-2\">\u60a8\u5c0d\u75c7\u72c0\u7684\u63a7\u5236\u80fd\u529b\u8f03\u5f31\uff0c\u512a\u5148\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u6cbb\u7642\u5e2b\u7684\u5354\u52a9<\/li>\n               <li>\u5b78\u7fd2\u57fa\u790e\u7684\u81ea\u6211\u8abf\u7bc0\u6280\u5de7<\/li>\n               <li>\u5efa\u7acb\u75c7\u72c0\u76e3\u63a7\u65e5\u8a8c<\/li>\n               <li>\u8003\u616e\u85e5\u7269\u6cbb\u7642\u7684\u5fc5\u8981\u6027<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       }\n       \n       \/\/ \u57fa\u65bc\u5e72\u64fe\u7a0b\u5ea6\u7684\u5efa\u8b70\n       const interferenceScore = (this.answers[1] + this.answers[6]) \/ 2;\n       if (interferenceScore >= 2) {\n         adviceContent += `\n           <div class=\"alert alert-warning mb-3\">\n             <h5><i class=\"bi bi-people me-2\"><\/i>\u793e\u6703\u529f\u80fd\u4fee\u5fa9<\/h5>\n             <p class=\"mb-2\">\u75c7\u72c0\u5c0d\u60a8\u7684\u793e\u4ea4\u548c\u5de5\u4f5c\u9020\u6210\u660e\u986f\u5f71\u97ff\uff0c\u5efa\u8b70\uff1a<\/p>\n             <ul class=\"mb-0\">\n               <li>\u8207\u5bb6\u4eba\u670b\u53cb\u5206\u4eab\u60a8\u7684\u72c0\u6cc1\uff0c\u7372\u5f97\u652f\u6301<\/li>\n               <li>\u5728\u5de5\u4f5c\u5834\u6240\u5c0b\u6c42\u5408\u7406\u7684\u8abf\u6574<\/li>\n               <li>\u53c3\u52a0\u652f\u6301\u5c0f\u7d44\u6216\u793e\u4ea4\u6280\u80fd\u8a13\u7df4<\/li>\n               <li>\u9010\u6b65\u91cd\u5efa\u793e\u4ea4\u548c\u8077\u696d\u529f\u80fd<\/li>\n             <\/ul>\n           <\/div>\n         `;\n       }\n     }\n     \n     \/\/ \u7e3d\u9ad4\u6cbb\u7642\u5efa\u8b70\n     const severity = this.getSeverityLevel(totalScore, obsessionScore, compulsionScore);\n     const treatmentAdvice = {\n       none: '\u7e7c\u7e8c\u4fdd\u6301\u826f\u597d\u7684\u5fc3\u7406\u5065\u5eb7\u72c0\u614b\uff0c\u5b9a\u671f\u9032\u884c\u81ea\u6211\u8a55\u4f30\u3002',\n       mild: '\u5efa\u8b70\u5c0b\u6c42\u5fc3\u7406\u8aee\u8a62\uff0c\u5b78\u7fd2\u57fa\u672c\u7684\u75c7\u72c0\u7ba1\u7406\u6280\u5de7\u3002\u53ef\u4ee5\u8003\u616e\u77ed\u671f\u7684\u8a8d\u77e5\u884c\u70ba\u6cbb\u7642\u3002',\n       moderate: '\u5f37\u70c8\u5efa\u8b70\u63a5\u53d7\u5c08\u696d\u7684\u5fc3\u7406\u6cbb\u7642\uff0c\u5982\u8a8d\u77e5\u884c\u70ba\u6cbb\u7642\uff08CBT\uff09\u6216\u66b4\u9732\u53cd\u61c9\u9810\u9632\u6cbb\u7642\uff08ERP\uff09\u3002',\n       severe: '\u9700\u8981\u7acb\u5373\u5c0b\u6c42\u5c08\u696d\u91ab\u7642\u5354\u52a9\uff0c\u53ef\u80fd\u9700\u8981\u4f4f\u9662\u6cbb\u7642\u6216\u5bc6\u96c6\u7684\u9580\u8a3a\u6cbb\u7642\u7a0b\u5e8f\u3002'\n     };\n     \n     adviceContent += `\n       <div class=\"alert alert-success\">\n         <h5><i class=\"bi bi-heart-pulse me-2\"><\/i>\u7d9c\u5408\u6cbb\u7642\u5efa\u8b70<\/h5>\n         <p class=\"mb-0\">${treatmentAdvice[severity]}<\/p>\n       <\/div>\n     `;\n     \n     this.elements.personalizedAdviceElement.innerHTML = adviceContent;\n   }\n\n   createDistributionChart(userScore) {\n     \/\/ \u92b7\u6bc0\u73fe\u6709\u5716\u8868\n     if (this.chartInstance) {\n       this.chartInstance.destroy();\n     }\n     \n     const ctx = this.elements.chartCanvas.getContext('2d');\n     \n     \/\/ \u8a2d\u5b9a\u5206\u6578\u5340\u9593\n     const ranges = [\n       { min: 0, max: 5, color: '#28a745', label: '\u7121\u75c7\u72c0' },\n       { min: 6, max: 15, color: '#ffc107', label: '\u8f15\u5ea6' },\n       { min: 16, max: 25, color: '#fd7e14', label: '\u4e2d\u5ea6' },\n       { min: 26, max: 40, color: '#dc3545', label: '\u91cd\u5ea6' }\n     ];\n     \n     \/\/ \u8a08\u7b97\u7528\u6236\u5206\u6578\u5728\u6574\u9ad4\u7bc4\u570d\u4e2d\u7684\u4f4d\u7f6e\n     const totalRange = 40;\n     const userPosition = (userScore \/ totalRange) * 100;\n     \n     this.chartInstance = new Chart(ctx, {\n       type: 'bar',\n       data: {\n         labels: [''],\n         datasets: ranges.map((range, index) => ({\n           label: range.label,\n           data: [range.max - range.min + 1],\n           backgroundColor: range.color,\n           borderColor: range.color,\n           borderWidth: 0,\n           barThickness: 30,\n           categoryPercentage: 1.0,\n           barPercentage: 1.0\n         }))\n       },\n       options: {\n         indexAxis: 'y',\n         responsive: true,\n         maintainAspectRatio: false,\n         plugins: {\n           legend: {\n             display: false\n           },\n           tooltip: {\n             enabled: false\n           }\n         },\n         scales: {\n           x: {\n             stacked: true,\n             display: false,\n            max: 40\n           },\n           y: {\n             stacked: true,\n             display: false\n           }\n         },\n         elements: {\n           bar: {\n             borderRadius: 0\n           }\n         },\n         onHover: () => {},\n         animation: {\n           onComplete: () => {\n             \/\/ \u7e6a\u88fd\u7528\u6236\u5206\u6578\u6a19\u8a18\n             const chartArea = this.chartInstance.chartArea;\n             const ctx = this.chartInstance.ctx;\n             \n             const xPosition = chartArea.left + (userScore \/ 40) * (chartArea.right - chartArea.left);\n             const yPosition = chartArea.top + (chartArea.bottom - chartArea.top) \/ 2;\n             \n             \/\/ \u7e6a\u88fd\u7d05\u8272\u5713\u9ede\n             ctx.save();\n             ctx.fillStyle = '#ff0000';\n             ctx.beginPath();\n             ctx.arc(xPosition, yPosition, 6, 0, Math.PI * 2);\n             ctx.fill();\n             \n             \/\/ \u7e6a\u88fd\u5206\u6578\u6a19\u7c64\n             ctx.fillStyle = '#000';\n             ctx.font = 'bold 14px Arial';\n             ctx.textAlign = 'center';\n             ctx.fillText(userScore.toString(), xPosition, yPosition - 15);\n             ctx.restore();\n           }\n         }\n       }\n     });\n   }\n\n   showSection(sectionName) {\n     document.querySelectorAll('.quiz-section').forEach(section => {\n       section.classList.add('d-none');\n       section.classList.remove('active');\n     });\n     \n     const targetSection = document.querySelector(`[data-page=\"${sectionName}\"]`);\n     if (targetSection) {\n       targetSection.classList.remove('d-none');\n       targetSection.classList.add('active');\n     }\n   }\n\n   scrollToTop() {\n     window.scrollTo({ top: 0, behavior: 'smooth' });\n   }\n\n   restartQuiz() {\n     this.currentQuestion = 0;\n     this.answers = [];\n     this.skippedToCompulsion = false;\n     this.skippedToResult = false;\n     if (this.chartInstance) {\n       this.chartInstance.destroy();\n       this.chartInstance = null;\n     }\n     this.showSection('intro9');\n     this.scrollToTop();\n   }\n }\n\n \/\/ \u521d\u59cb\u5316\u6e2c\u9a57\n document.addEventListener('DOMContentLoaded', () => {\n   new YBOCSQuiz();\n });\n\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u8036\u9c81\u5e03\u6717\u5f3a\u8feb\u75c7\u91cf\u8868\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5f3a\u8feb\u75c7\u7684\u4e34\u5e8a\u8bca\u65ad\u548c\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u3002\u900f\u8fc7\u4f7f\u7528\u8be5\u91cf\u8868\uff0c\u53ef\u4ee5\u66f4\u51c6\u786e\u5730\u4e86\u89e3\u5f3a\u8feb\u75c7\u72b6\u7684\u578b\u522b\u548c\u4e25\u91cd\u7a0b\u5ea6\uff0c\u4ece\u800c\u786e\u5b9a\u66f4\u6709\u6548\u7684\u6cbb\u7597\u65b9\u6cd5\u548c\u5236\u5b9a\u66f4\u5408\u7406\u7684\u6cbb\u7597\u8ba1\u5212\u3002<\/p>","protected":false},"author":19,"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":[169,165,162],"tags":[185],"class_list":["post-5816","post","type-post","status-publish","format-standard","hentry","category-psychological-symptom-scales","category-neuropsychological","category-clinical","tag-compulsion"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5816","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\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/comments?post=5816"}],"version-history":[{"count":1,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5816\/revisions"}],"predecessor-version":[{"id":10250,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5816\/revisions\/10250"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=5816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=5816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=5816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}