{"id":5906,"date":"2024-01-30T10:16:28","date_gmt":"2024-01-30T02:16:28","guid":{"rendered":"https:\/\/bookmark.tw\/?p=5906"},"modified":"2025-06-06T11:23:53","modified_gmt":"2025-06-06T03:23:53","slug":"les","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/les","title":{"rendered":"\u751f\u6d3b\u4e8b\u4ef6\u58d3\u529b\u91cf\u8868(LES)\u7dda\u4e0a\u514d\u8cbb\u6e2c\u9a57\uff0848\u984c\uff09"},"content":{"rendered":"<!-- Bootstrap 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\n<!-- Custom Styles -->\n<style>\n\/* \u57fa\u790e\u6a23\u5f0f *\/\nbody {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n    line-height: 1.6;\n}\n\n\/* \u4e3b\u5bb9\u5668 *\/\n.les-quiz-container {\n    max-width: 750px;\n    margin: 0 auto;\n    padding: 1rem;\n}\n\n\/* \u9801\u9762\u5361\u7247 *\/\n.quiz-card {\n    background: white;\n    border-radius: 20px;\n    box-shadow: 0 10px 30px rgba(0,0,0,0.1);\n    overflow: hidden;\n    min-height: 500px;\n}\n\n\/* \u554f\u984c\u6587\u5b57 *\/\n.question-text {\n    font-size: 22px;\n    font-weight: 700;\n    margin-bottom: 2rem;\n    color: #212529;\n    line-height: 1.4;\n}\n\n\/* \u52d5\u756b *\/\n@keyframes float {\n    0%, 100% { transform: translateY(0px); }\n    50% { transform: translateY(-10px); }\n}\n\n.float-animation {\n    animation: float 3s ease-in-out infinite;\n}\n\n.fade-in {\n    animation: fadeIn 0.5s ease-in;\n}\n\n@keyframes fadeIn {\n    from { opacity: 0; transform: translateY(20px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n\n\/* \u78ba\u4fdd\u9801\u9762\u96b1\u85cf *\/\n.page {\n    display: none;\n}\n\n.page.active {\n    display: block;\n}\n\n\/* \u81ea\u5b9a\u7fa9\u9032\u5ea6\u689d *\/\n.custom-progress {\n    height: 10px;\n    border-radius: 10px;\n}\n\n\/* \u5716\u8868\u5bb9\u5668 *\/\n.chart-container {\n    max-width: 100%;\n    height: 300px;\n    margin: 2rem 0;\n}\n\n\/* \u6c34\u5e73\u67f1\u72c0\u5716\u6a23\u5f0f *\/\n.dimension-bar {\n    margin-bottom: 1.5rem;\n}\n\n.position-marker {\n    position: relative;\n    height: 30px;\n    background: linear-gradient(90deg, #28a745 0%, #ffc107 50%, #dc3545 100%);\n    border-radius: 15px;\n    margin-top: 0.5rem;\n}\n\n.user-position {\n    position: absolute;\n    top: -5px;\n    width: 40px;\n    height: 40px;\n    background: #198754;\n    border: 3px solid white;\n    border-radius: 50%;\n    box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n    transform: translateX(-50%);\n}\n\n.scale-labels {\n    display: flex;\n    justify-content: space-between;\n    font-size: 0.8rem;\n    color: #6c757d;\n    margin-top: 0.5rem;\n}\n\n\/* \u7279\u5fb5\u5716\u6a19\u6a23\u5f0f *\/\n.feature-icon {\n    width: 80px;\n    height: 80px;\n    border-radius: 50%;\n    background: linear-gradient(135deg, #198754 0%, #20c997 100%);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin: 0 auto 1rem;\n    box-shadow: 0 5px 15px rgba(25, 135, 84, 0.3);\n}\n\n.feature-icon i {\n    font-size: 2rem;\n    color: white;\n}\n\n\/* \u81ea\u5b9a\u7fa9\u4e3b\u984c\u8272 *\/\n.btn-theme-primary {\n    background: linear-gradient(135deg, #198754 0%, #20c997 100%);\n    border: none;\n    color: white;\n}\n\n.btn-theme-primary:hover {\n    background: linear-gradient(135deg, #146c43 0%, #1aa085 100%);\n    color: white;\n    transform: translateY(-1px);\n}\n\n.bg-theme-primary {\n    background: linear-gradient(135deg, #198754 0%, #20c997 100%) !important;\n}\n\n.text-theme-primary {\n    color: #198754 !important;\n}\n\n\/* \u97ff\u61c9\u5f0f\u8a2d\u8a08 *\/\n@media (max-width: 576px) {\n    .les-quiz-container {\n        padding: 0.5rem;\n    }\n    \n    .question-text {\n        font-size: 20px;\n    }\n    \n    .feature-icon {\n        width: 60px;\n        height: 60px;\n    }\n    \n    .feature-icon i {\n        font-size: 1.5rem;\n    }\n}\n<\/style>\n\n<!-- Main Container -->\n<div class=\"les-quiz-container\">\n    <div class=\"quiz-card\">\n        \n        <!-- \u5f15\u5c0e\u9801 -->\n        <div id=\"intro-page\" class=\"page active\">\n            <div class=\"p-4 p-md-5 text-center fade-in\">\n                <h1 class=\"display-4 fw-bold text-theme-primary mb-3\">\u751f\u6d3b\u4e8b\u4ef6\u91cf\u8868\u6e2c\u9a57<\/h1>\n                <p class=\"lead text-muted mb-4\">\u79d1\u5b78\u8a55\u4f30\u60a8\u7684\u5fc3\u7406\u58d3\u529b\u6c34\u5e73\uff0c\u4e86\u89e3\u751f\u6d3b\u4e8b\u4ef6\u5c0d\u60a8\u7684\u5f71\u97ff<\/p>\n                \n                <div class=\"row g-4 my-4\">\n                    <div class=\"col-4\">\n                        <div class=\"feature-icon float-animation\" style=\"animation-delay: 0s;\">\n                            <i class=\"bi bi-graph-up\"><\/i>\n                        <\/div>\n                        <h6 class=\"fw-semibold\">\u79d1\u5b66\u8bc4\u4f30<\/h6>\n                    <\/div>\n                    <div class=\"col-4\">\n                        <div class=\"feature-icon float-animation\" style=\"animation-delay: 0.2s;\">\n                            <i class=\"bi bi-heart-pulse\"><\/i>\n                        <\/div>\n                        <h6 class=\"fw-semibold\">\u5fc3\u7406\u5065\u5eb7<\/h6>\n                    <\/div>\n                    <div class=\"col-4\">\n                        <div class=\"feature-icon float-animation\" style=\"animation-delay: 0.4s;\">\n                            <i class=\"bi bi-lightbulb\"><\/i>\n                        <\/div>\n                        <h6 class=\"fw-semibold\">\u5c08\u696d\u5efa\u8b70<\/h6>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"card bg-light border-0 mb-4\">\n                    <div class=\"card-body\">\n                        <h5 class=\"card-title text-theme-primary\">\u6e2c\u9a57\u7279\u8272<\/h5>\n                        <div class=\"row text-start\">\n                            <div class=\"col-md-6 mb-2\">\n                                <i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\n                                <span>\u57fa\u65bc\u6b0a\u5a01\u7684\u751f\u6d3b\u4e8b\u4ef6\u91cf\u8868(LES)<\/span>\n                            <\/div>\n                            <div class=\"col-md-6 mb-2\">\n                                <i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\n                                <span>\u6db5\u84cb\u5bb6\u5ead\u3001\u5de5\u4f5c\u3001\u793e\u4ea4\u4e09\u5927\u9818\u57df<\/span>\n                            <\/div>\n                            <div class=\"col-md-6 mb-2\">\n                                <i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\n                                <span>\u8a73\u7d30\u8a55\u4f30\u4e8b\u4ef6\u6027\u8cea\u548c\u5f71\u97ff\u7a0b\u5ea6<\/span>\n                            <\/div>\n                            <div class=\"col-md-6 mb-2\">\n                                <i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\n                                <span>\u9069\u7528\u65bc16\u6b72\u4ee5\u4e0a\u4eba\u7fa4<\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <button class=\"btn btn-theme-primary btn-lg px-5 py-3 rounded-pill shadow\" data-action=\"start-quiz\">\n                    <i class=\"bi bi-play-fill me-2\"><\/i>\u5f00\u59cb\u6d4b\u9a8c\n                <\/button>\n                \n                <p class=\"mt-3 text-muted\">\n                    <i class=\"bi bi-clock me-1\"><\/i>\u9810\u4f30\u5b8c\u6210\u6642\u9593\uff1a8-12\u5206\u9418\n                <\/p>\n            <\/div>\n        <\/div>\n\n        <!-- \u6e2c\u9a57\u9801 -->\n        <div id=\"quiz-page\" class=\"page\">\n            <!-- \u6e2c\u9a57\u6a19\u984c\u548c\u9032\u5ea6 -->\n            <div class=\"bg-theme-primary text-white p-4 text-center\">\n                <h2 class=\"h4 fw-semibold mb-3\">\u751f\u6d3b\u4e8b\u4ef6\u8a55\u4f30<\/h2>\n                <div class=\"progress custom-progress mb-2\" style=\"background-color: rgba(255,255,255,0.2);\">\n                    <div id=\"progress-bar\" class=\"progress-bar bg-light\" role=\"progressbar\" style=\"width: 0%\"><\/div>\n                <\/div>\n                <small id=\"question-counter\" class=\"opacity-75\">\u554f\u984c 1 \/ 48<\/small>\n            <\/div>\n            \n            <!-- \u554f\u984c\u5167\u5bb9 -->\n            <div class=\"p-4\">\n                <h3 id=\"question-text\" class=\"question-text text-center\"><\/h3>\n                <div id=\"options-container\" class=\"d-grid gap-2\"><\/div>\n            <\/div>\n            \n            <!-- \u5c0e\u822a\u6309\u9215 -->\n            <div class=\"p-4 border-top text-center\">\n                <button id=\"prev-btn\" class=\"btn btn-outline-secondary rounded-pill px-4\" style=\"display: none;\">\n                    <i class=\"bi bi-arrow-left me-2\"><\/i>\u4e0a\u4e00\u9898\n                <\/button>\n            <\/div>\n        <\/div>\n\n        <!-- \u7d50\u679c\u9801 -->\n        <div id=\"result-page\" class=\"page\">\n            <div class=\"p-4 p-md-5 fade-in\">\n                <h2 class=\"text-center fw-bold text-theme-primary mb-4\">\u6d4b\u9a8c\u7ed3\u679c\u5206\u6790<\/h2>\n                \n                <!-- \u7e3d\u9ad4\u8a55\u4f30 -->\n                <div id=\"overall-assessment\" class=\"alert mb-4\"><\/div>\n                \n                <!-- \u591a\u7dad\u5ea6\u5206\u6790 -->\n                <div class=\"mb-4\">\n                    <h4 class=\"fw-semibold mb-3\">\u5404\u9818\u57df\u58d3\u529b\u5206\u6790<\/h4>\n                    <div id=\"dimension-analysis\"><\/div>\n                <\/div>\n                \n                <!-- \u4e8b\u4ef6\u6027\u8cea\u5206\u6790 -->\n                <div class=\"mb-4\">\n                    <h4 class=\"fw-semibold mb-3\">\u4e8b\u4ef6\u6027\u8cea\u5206\u6790<\/h4>\n                    <div id=\"event-nature-analysis\" class=\"row g-3\"><\/div>\n                <\/div>\n                \n                <!-- \u500b\u6027\u5316\u5efa\u8b70 -->\n                <div id=\"personalized-advice\" class=\"card bg-light border-0 mb-4\">\n                    <div class=\"card-body\">\n                        <h5 class=\"card-title text-theme-primary\">\n                            <i class=\"bi bi-lightbulb me-2\"><\/i>\u500b\u6027\u5316\u5efa\u8b70\n                        <\/h5>\n                        <div id=\"advice-content\"><\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- \u91cd\u65b0\u6e2c\u9a57\u6309\u9215 -->\n                <div class=\"text-center\">\n                    <button class=\"btn btn-theme-primary btn-lg px-5 py-3 rounded-pill shadow\" data-action=\"restart-quiz\">\n                        <i class=\"bi bi-arrow-clockwise me-2\"><\/i>\u91cd\u65b0\u6d4b\u9a8c\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n    <\/div>\n<\/div>\n\n<!-- JavaScript -->\n<script>\n(function() {\n    'use strict';\n    \n    \/\/ \u6e2c\u9a57\u6578\u64da\n    const quizData = {\n        familyQuestions: [\n            \"\u6200\u611b\u6216\u8a02\u5a5a\", \"\u6200\u611b\u5931\u6557\u3001\u7834\u88c2\", \"\u7d50\u5a5a\", \"\u81ea\u5df1\uff08\u611b\u4eba\uff09\u61f7\u5b55\", \"\u81ea\u5df1\uff08\u611b\u4eba\uff09\u6d41\u7522\",\n            \"\u5bb6\u5ead\u589e\u6dfb\u65b0\u6210\u54e1\", \"\u8207\u611b\u4eba\u7236\u6bcd\u4e0d\u548c\", \"\u592b\u59bb\u611f\u60c5\u4e0d\u597d\", \"\u592b\u59bb\u5206\u5c45\uff08\u56e0\u4e0d\u548c\uff09\", \"\u592b\u59bb\u5169\u5730\u5206\u5c45\uff08\u5de5\u4f5c\u9700\u8981\uff09\",\n            \"\u6027\u751f\u6d3b\u4e0d\u6eff\u610f\u6216\u7368\u8eab\", \"\u914d\u5076\u4e00\u65b9\u6709\u5916\u9047\", \"\u592b\u59bb\u91cd\u6b78\u65bc\u597d\", \"\u8d85\u6307\u6a19\u751f\u80b2\", \"\u672c\u4eba\uff08\u611b\u4eba\uff09\u4f5c\u7d55\u80b2\u624b\u8853\",\n            \"\u914d\u5076\u6b7b\u4ea1\", \"\u96e2\u5a5a\", \"\u5b50\u5973\u5347\u5b78\uff08\u5c31\u696d\uff09\u5931\u6557\", \"\u5b50\u5973\u7ba1\u6559\u56f0\u96e3\", \"\u5b50\u5973\u9577\u671f\u96e2\u5bb6\",\n            \"\u7236\u6bcd\u4e0d\u548c\", \"\u5bb6\u5ead\u7d93\u6fdf\u56f0\u96e3\", \"\u6b20\u50b5500\u5143\u4ee5\u4e0a\", \"\u7d93\u6fdf\u60c5\u6cc1\u986f\u8457\u6539\u5584\", \"\u5bb6\u5ead\u6210\u54e1\u91cd\u75c5\u3001\u91cd\u50b7\",\n            \"\u5bb6\u5ead\u6210\u54e1\u6b7b\u4ea1\", \"\u672c\u4eba\u91cd\u75c5\u6216\u91cd\u50b7\", \"\u4f4f\u623f\u7dca\u5f35\"\n        ],\n        workQuestions: [\n            \"\u5f85\u696d\u3001\u7121\u696d\", \"\u958b\u59cb\u5c31\u696d\", \"\u9ad8\u8003\u5931\u6557\", \"\u6263\u767c\u734e\u91d1\u6216\u7f70\u6b3e\", \"\u7a81\u51fa\u7684\u500b\u4eba\u6210\u5c31\",\n            \"\u6649\u5347\u3001\u63d0\u7d1a\", \"\u5c0d\u73fe\u8077\u5de5\u4f5c\u4e0d\u6eff\u610f\", \"\u5de5\u4f5c\u5b78\u7fd2\u4e2d\u58d3\u529b\u5927\uff08\u5982\u6210\u7e3e\u4e0d\u597d\uff09\", \"\u8207\u4e0a\u7d1a\u95dc\u4fc2\u7dca\u5f35\", \"\u8207\u540c\u4e8b\u9130\u5c45\u4e0d\u548c\",\n            \"\u7b2c\u4e00\u6b21\u9060\u8d70\u4ed6\u9109\u7570\u570b\", \"\u751f\u6d3b\u898f\u5f8b\u91cd\u5927\u8b8a\u52d5\uff08\u98f2\u98df\u7761\u7720\u898f\u5f8b\u6539\u8b8a\uff09\", \"\u672c\u4eba\u9000\u4f11\u96e2\u4f11\u6216\u672a\u5b89\u6392\u5177\u9ad4\u5de5\u4f5c\"\n        ],\n        socialQuestions: [\n            \"\u597d\u53cb\u91cd\u75c5\u6216\u91cd\u50b7\", \"\u597d\u53cb\u6b7b\u4ea1\", \"\u88ab\u4eba\u8aa4\u6703\u3001\u932f\u602a\u3001\u8aa3\u544a\u3001\u8b70\u8ad6\", \"\u4ecb\u5165\u6c11\u4e8b\u6cd5\u5f8b\u7cfe\u7d1b\",\n            \"\u88ab\u62d8\u7559\u3001\u53d7\u5be9\", \"\u5931\u7aca\u3001\u8ca1\u7522\u640d\u5931\", \"\u610f\u5916\u9a5a\u5687\u3001\u767c\u751f\u4e8b\u6545\u3001\u81ea\u7136\u707d\u5bb3\"\n        ]\n    };\n    \n    \/\/ \u5408\u4f75\u6240\u6709\u554f\u984c\n    const allQuestions = [\n        ...quizData.familyQuestions,\n        ...quizData.workQuestions,\n        ...quizData.socialQuestions\n    ];\n    \n    \/\/ \u9078\u9805\u8a2d\u5b9a - \u6309\u7167\u539f\u6587\u6a94\u8a2d\u8a08\n    const options = [\n        { text: \"\u672a\u7d93\u6b77\u6b64\u4e8b\u4ef6\", value: 0, type: 'none', nature: 'none', class: 'btn-outline-secondary' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u597d\u4e8b\uff0c\u8f15\u5ea6\u5f71\u97ff\", value: 1, type: 'mild', nature: 'positive', class: 'btn-outline-success' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u597d\u4e8b\uff0c\u4e2d\u5ea6\u5f71\u97ff\", value: 2, type: 'moderate', nature: 'positive', class: 'btn-outline-info' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u597d\u4e8b\uff0c\u91cd\u5ea6\u5f71\u97ff\", value: 3, type: 'severe', nature: 'positive', class: 'btn-outline-primary' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u597d\u4e8b\uff0c\u5f71\u97ff\u6975\u91cd\", value: 4, type: 'extreme', nature: 'positive', class: 'btn-outline-dark' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u58de\u4e8b\uff0c\u8f15\u5ea6\u5f71\u97ff\", value: 1, type: 'mild', nature: 'negative', class: 'btn-outline-warning' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u58de\u4e8b\uff0c\u4e2d\u5ea6\u5f71\u97ff\", value: 2, type: 'moderate', nature: 'negative', class: 'btn-outline-warning' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u58de\u4e8b\uff0c\u91cd\u5ea6\u5f71\u97ff\", value: 3, type: 'severe', nature: 'negative', class: 'btn-outline-danger' },\n        { text: \"\u7d93\u6b77\u904e\uff0c\u662f\u58de\u4e8b\uff0c\u5f71\u97ff\u6975\u91cd\", value: 4, type: 'extreme', nature: 'negative', class: 'btn-outline-danger' }\n    ];\n    \n    \/\/ \u6e2c\u9a57\u72c0\u614b\n    let currentQuestionIndex = 0;\n    let answers = [];\n    \n    \/\/ DOM \u5143\u7d20\n    const pages = {\n        intro: document.getElementById('intro-page'),\n        quiz: document.getElementById('quiz-page'),\n        result: document.getElementById('result-page')\n    };\n    \n    const elements = {\n        progressBar: document.getElementById('progress-bar'),\n        questionCounter: document.getElementById('question-counter'),\n        questionText: document.getElementById('question-text'),\n        optionsContainer: document.getElementById('options-container'),\n        prevBtn: document.getElementById('prev-btn'),\n        overallAssessment: document.getElementById('overall-assessment'),\n        dimensionAnalysis: document.getElementById('dimension-analysis'),\n        eventNatureAnalysis: document.getElementById('event-nature-analysis'),\n        adviceContent: document.getElementById('advice-content')\n    };\n    \n    \/\/ \u4e8b\u4ef6\u8655\u7406\u5668\n    function initEventListeners() {\n        \/\/ \u958b\u59cb\u6e2c\u9a57\u6309\u9215\n        document.querySelector('[data-action=\"start-quiz\"]')?.addEventListener('click', startQuiz);\n        \n        \/\/ \u91cd\u65b0\u6e2c\u9a57\u6309\u9215\n        document.querySelector('[data-action=\"restart-quiz\"]')?.addEventListener('click', restartQuiz);\n        \n        \/\/ \u4e0a\u4e00\u984c\u6309\u9215\n        elements.prevBtn?.addEventListener('click', previousQuestion);\n        \n        \/\/ \u9078\u9805\u9ede\u64ca\u59d4\u8a17\n        elements.optionsContainer?.addEventListener('click', handleOptionClick);\n    }\n    \n    \/\/ \u986f\u793a\u9801\u9762\n    function showPage(pageName) {\n        Object.values(pages).forEach(page => page?.classList.remove('active'));\n        pages[pageName]?.classList.add('active');\n        \n        \/\/ \u6efe\u52d5\u5230\u9802\u90e8\n        window.scrollTo({ top: 0, behavior: 'smooth' });\n    }\n    \n    \/\/ \u958b\u59cb\u6e2c\u9a57\n    function startQuiz() {\n        currentQuestionIndex = 0;\n        answers = [];\n        showPage('quiz');\n        displayQuestion();\n    }\n    \n    \/\/ \u91cd\u65b0\u6e2c\u9a57\n    function restartQuiz() {\n        showPage('intro');\n    }\n    \n    \/\/ \u986f\u793a\u554f\u984c\n    function displayQuestion() {\n        const question = allQuestions[currentQuestionIndex];\n        const progress = ((currentQuestionIndex + 1) \/ allQuestions.length) * 100;\n        \n        \/\/ \u66f4\u65b0\u9032\u5ea6\n        elements.progressBar.style.width = `${progress}%`;\n        elements.questionCounter.textContent = `\u554f\u984c ${currentQuestionIndex + 1} \/ ${allQuestions.length}`;\n        \n        \/\/ \u66f4\u65b0\u554f\u984c\u6587\u5b57\n        elements.questionText.textContent = question;\n        \n        \/\/ \u6e05\u7a7a\u4e26\u91cd\u65b0\u5275\u5efa\u9078\u9805\n        elements.optionsContainer.innerHTML = '';\n        \n        options.forEach((option, index) => {\n            const button = document.createElement('button');\n            button.className = `btn ${option.class} py-2 px-3 text-start`;\n            button.textContent = option.text;\n            button.style.fontSize = '16px';\n            button.dataset.value = option.value;\n            button.dataset.type = option.type;\n            button.dataset.nature = option.nature;\n            button.dataset.index = index;\n            \n            \/\/ \u5982\u679c\u6709\u4e4b\u524d\u7684\u7b54\u6848\uff0c\u6062\u5fa9\u9078\u4e2d\u72c0\u614b\n            if (answers[currentQuestionIndex] && answers[currentQuestionIndex].optionIndex === index) {\n                button.classList.remove('btn-outline-secondary', 'btn-outline-success', 'btn-outline-info', 'btn-outline-primary', 'btn-outline-dark', 'btn-outline-warning', 'btn-outline-danger');\n                button.classList.add(option.class.replace('outline-', ''), 'text-white');\n            }\n            \n            elements.optionsContainer.appendChild(button);\n        });\n        \n        \/\/ \u63a7\u5236\u4e0a\u4e00\u984c\u6309\u9215\u986f\u793a\n        elements.prevBtn.style.display = currentQuestionIndex > 0 ? 'inline-block' : 'none';\n    }\n    \n    \/\/ \u8655\u7406\u9078\u9805\u9ede\u64ca\n    function handleOptionClick(event) {\n        const button = event.target;\n        if (!button.classList.contains('btn')) return;\n        \n        \/\/ \u79fb\u9664\u6240\u6709\u9078\u4e2d\u72c0\u614b\n        document.querySelectorAll('#options-container .btn').forEach(btn => {\n            btn.className = btn.className.replace(\/btn-(secondary|success|info|primary|dark|warning|danger)\/g, 'btn-outline-$1');\n            btn.classList.remove('text-white');\n        });\n        \n        \/\/ \u6dfb\u52a0\u9078\u4e2d\u72c0\u614b\n        const option = options[parseInt(button.dataset.index)];\n        button.classList.remove('btn-outline-secondary', 'btn-outline-success', 'btn-outline-info', 'btn-outline-primary', 'btn-outline-dark', 'btn-outline-warning', 'btn-outline-danger');\n        button.classList.add(option.class.replace('outline-', ''), 'text-white');\n        \n        \/\/ \u8a18\u9304\u7b54\u6848\n        answers[currentQuestionIndex] = {\n            questionIndex: currentQuestionIndex,\n            optionIndex: parseInt(button.dataset.index),\n            value: parseInt(button.dataset.value),\n            type: button.dataset.type,\n            nature: button.dataset.nature,\n            questionText: allQuestions[currentQuestionIndex],\n            answerText: button.textContent\n        };\n        \n        \/\/ \u5ef6\u9072\u9032\u5165\u4e0b\u4e00\u984c\u6216\u7d50\u675f\u6e2c\u9a57\n        setTimeout(() => {\n            if (currentQuestionIndex < allQuestions.length - 1) {\n                nextQuestion();\n            } else {\n                showResults();\n            }\n        }, 300);\n    }\n    \n    \/\/ \u4e0b\u4e00\u984c\n    function nextQuestion() {\n        currentQuestionIndex++;\n        displayQuestion();\n        \n        \/\/ \u6efe\u52d5\u5230\u554f\u984c\u6a19\u984c\n        elements.questionText.scrollIntoView({ \n            behavior: 'smooth', \n            block: 'start' \n        });\n    }\n    \n    \/\/ \u4e0a\u4e00\u984c\n    function previousQuestion() {\n        if (currentQuestionIndex > 0) {\n            currentQuestionIndex--;\n            displayQuestion();\n            \n            \/\/ \u6efe\u52d5\u5230\u554f\u984c\u6a19\u984c\n            elements.questionText.scrollIntoView({ \n                behavior: 'smooth', \n                block: 'start' \n            });\n        }\n    }\n    \n    \/\/ \u986f\u793a\u7d50\u679c\n    function showResults() {\n        const results = calculateResults();\n        showPage('result');\n        \n        \/\/ \u66f4\u65b0\u5404\u90e8\u5206\u5167\u5bb9\n        updateOverallAssessment(results);\n        updateDimensionAnalysis(results);\n        updateEventNatureAnalysis(results);\n        updatePersonalizedAdvice(results);\n        \n        \/\/ \u6efe\u52d5\u5230\u7d50\u679c\u6a19\u984c\n        setTimeout(() => {\n            document.querySelector('#result-page h2').scrollIntoView({ \n                behavior: 'smooth', \n                block: 'start' \n            });\n        }, 200);\n    }\n    \n    \/\/ \u8a08\u7b97\u7d50\u679c\n    function calculateResults() {\n        let totalScore = 0;\n        let familyScore = 0;\n        let workScore = 0;\n        let socialScore = 0;\n        let positiveScore = 0;\n        let negativeScore = 0;\n        let experiencedEvents = [];\n        let stressTypes = { mild: 0, moderate: 0, severe: 0, extreme: 0 };\n        let eventNatures = { positive: 0, negative: 0 };\n        \n        answers.forEach((answer, index) => {\n            const score = answer.value;\n            totalScore += score;\n            \n            if (score > 0) {\n                experiencedEvents.push(answer);\n                stressTypes[answer.type]++;\n                \n                if (answer.nature === 'positive') {\n                    positiveScore += score;\n                    eventNatures.positive++;\n                } else if (answer.nature === 'negative') {\n                    negativeScore += score;\n                    eventNatures.negative++;\n                }\n            }\n            \n            \/\/ \u6309\u9818\u57df\u5206\u985e\n            if (index < quizData.familyQuestions.length) {\n                familyScore += score;\n            } else if (index < quizData.familyQuestions.length + quizData.workQuestions.length) {\n                workScore += score;\n            } else {\n                socialScore += score;\n            }\n        });\n        \n        \/\/ \u8a08\u7b97\u58d3\u529b\u7b49\u7d1a\n        let stressLevel = 'low';\n        let stressCategory = '\u6b63\u5e38\u7bc4\u570d';\n        let alertClass = 'alert-success';\n        \n        if (totalScore > 32) {\n            stressLevel = 'high';\n            stressCategory = '\u9700\u8981\u91cd\u8996';\n            alertClass = 'alert-danger';\n        } else if (totalScore > 20) {\n            stressLevel = 'medium';\n            stressCategory = '\u9700\u8981\u95dc\u6ce8';\n            alertClass = 'alert-warning';\n        }\n        \n        return {\n            totalScore,\n            familyScore,\n            workScore,\n            socialScore,\n            positiveScore,\n            negativeScore,\n            stressLevel,\n            stressCategory,\n            alertClass,\n            experiencedEvents,\n            stressTypes,\n            eventNatures,\n            answeredQuestions: experiencedEvents.length\n        };\n    }\n    \n    \/\/ \u66f4\u65b0\u7e3d\u9ad4\u8a55\u4f30\n    function updateOverallAssessment(results) {\n        const assessment = `\n            <div class=\"d-flex align-items-center\">\n                <i class=\"bi bi-clipboard-data fs-3 me-3 text-theme-primary\"><\/i>\n                <div>\n                    <h5 class=\"mb-1\">\u58d3\u529b\u6c34\u5e73\uff1a${results.stressCategory}<\/h5>\n                    <p class=\"mb-0\">\u60a8\u5728\u904e\u53bb\u4e00\u5e74\u4e2d\u7d93\u6b77\u4e86 ${results.answeredQuestions} \u9805\u751f\u6d3b\u4e8b\u4ef6<\/p>\n                <\/div>\n            <\/div>\n        `;\n        \n        elements.overallAssessment.className = `alert ${results.alertClass}`;\n        elements.overallAssessment.innerHTML = assessment;\n    }\n    \n    \/\/ \u66f4\u65b0\u7dad\u5ea6\u5206\u6790\n    function updateDimensionAnalysis(results) {\n        const maxScore = Math.max(results.familyScore, results.workScore, results.socialScore, 1);\n        const dimensions = [\n            { name: '\u5bb6\u5ead\u751f\u6d3b', score: results.familyScore, icon: 'house-heart' },\n            { name: '\u5de5\u4f5c\u5b78\u7fd2', score: results.workScore, icon: 'briefcase' },\n            { name: '\u793e\u4ea4\u5176\u4ed6', score: results.socialScore, icon: 'people' }\n        ];\n        \n        let html = '';\n        dimensions.forEach(dim => {\n            const percentage = (dim.score \/ maxScore) * 100;\n            const position = Math.min(percentage, 100);\n            \n            html += `\n                <div class=\"dimension-bar\">\n                    <div class=\"d-flex justify-content-between align-items-center mb-2\">\n                        <span class=\"fw-semibold\">\n                            <i class=\"bi bi-${dim.icon} me-2 text-theme-primary\"><\/i>${dim.name}\n                        <\/span>\n                        <span class=\"badge bg-success\">${getStressLevelText(dim.score)}<\/span>\n                    <\/div>\n                    <div class=\"position-marker\">\n                        <div class=\"user-position\" style=\"left: ${position}%\"><\/div>\n                    <\/div>\n                    <div class=\"scale-labels\">\n                        <span>\u4f4e\u58d3\u529b<\/span>\n                        <span>\u4e2d\u7b49\u58d3\u529b<\/span>\n                        <span>\u9ad8\u58d3\u529b<\/span>\n                    <\/div>\n                <\/div>\n            `;\n        });\n        \n        elements.dimensionAnalysis.innerHTML = html;\n    }\n    \n    \/\/ \u66f4\u65b0\u4e8b\u4ef6\u6027\u8cea\u5206\u6790\n    function updateEventNatureAnalysis(results) {\n        const totalEvents = results.eventNatures.positive + results.eventNatures.negative;\n        const positivePercentage = totalEvents > 0 ? Math.round((results.eventNatures.positive \/ totalEvents) * 100) : 0;\n        const negativePercentage = totalEvents > 0 ? Math.round((results.eventNatures.negative \/ totalEvents) * 100) : 0;\n        \n        const html = `\n            <div class=\"col-md-6\">\n                <div class=\"card border-success\">\n                    <div class=\"card-body text-center\">\n                        <i class=\"bi bi-emoji-smile fs-1 text-success mb-2\"><\/i>\n                        <h6 class=\"card-title\">\u6b63\u9762\u4e8b\u4ef6<\/h6>\n                        <p class=\"card-text\">\n                            <span class=\"fs-4 fw-bold text-success\">${results.eventNatures.positive}<\/span> \u9805\n                            <br><small class=\"text-muted\">${positivePercentage}%<\/small>\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"col-md-6\">\n                <div class=\"card border-danger\">\n                    <div class=\"card-body text-center\">\n                        <i class=\"bi bi-emoji-frown fs-1 text-danger mb-2\"><\/i>\n                        <h6 class=\"card-title\">\u8ca0\u9762\u4e8b\u4ef6<\/h6>\n                        <p class=\"card-text\">\n                            <span class=\"fs-4 fw-bold text-danger\">${results.eventNatures.negative}<\/span> \u9805\n                            <br><small class=\"text-muted\">${negativePercentage}%<\/small>\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        `;\n        \n        elements.eventNatureAnalysis.innerHTML = html;\n    }\n    \n    \/\/ \u7372\u53d6\u58d3\u529b\u7b49\u7d1a\u6587\u5b57\n    function getStressLevelText(score) {\n        if (score === 0) return '\u7121\u58d3\u529b';\n        if (score <= 5) return '\u8f15\u5fae';\n        if (score <= 15) return '\u4e2d\u7b49';\n        return '\u8f03\u9ad8';\n    }\n    \n    \/\/ \u66f4\u65b0\u500b\u6027\u5316\u5efa\u8b70\n    function updatePersonalizedAdvice(results) {\n        let advice = [];\n        \n        \/\/ \u57fa\u65bc\u7e3d\u9ad4\u58d3\u529b\u6c34\u5e73\u7684\u5efa\u8b70\n        if (results.stressLevel === 'low') {\n            advice.push('\u60a8\u76ee\u524d\u7684\u58d3\u529b\u6c34\u5e73\u5728\u5065\u5eb7\u7bc4\u570d\u5167\uff0c\u8acb\u7e7c\u7e8c\u4fdd\u6301\u826f\u597d\u7684\u751f\u6d3b\u5e73\u8861\u3002');\n        } else if (results.stressLevel === 'medium') {\n            advice.push('\u60a8\u7684\u58d3\u529b\u6c34\u5e73\u7565\u9ad8\uff0c\u5efa\u8b70\u52a0\u5f37\u58d3\u529b\u7ba1\u7406\uff0c\u6ce8\u610f\u4f11\u606f\u548c\u653e\u9b06\u3002');\n        } else {\n            advice.push('\u60a8\u7684\u58d3\u529b\u6c34\u5e73\u8f03\u9ad8\uff0c\u5f37\u70c8\u5efa\u8b70\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u8aee\u8a62\u5e2b\u7684\u5354\u52a9\u3002');\n        }\n        \n        \/\/ \u57fa\u65bc\u5404\u9818\u57df\u58d3\u529b\u7684\u5efa\u8b70\n        if (results.familyScore > results.workScore && results.familyScore > results.socialScore) {\n            advice.push('\u5bb6\u5ead\u751f\u6d3b\u662f\u60a8\u4e3b\u8981\u7684\u58d3\u529b\u4f86\u6e90\uff0c\u5efa\u8b70\u6539\u5584\u5bb6\u5ead\u6e9d\u901a\uff0c\u5c0b\u6c42\u5bb6\u5ead\u652f\u6301\u3002');\n        } else if (results.workScore > results.socialScore) {\n            advice.push('\u5de5\u4f5c\u5b78\u7fd2\u58d3\u529b\u8f03\u5927\uff0c\u5efa\u8b70\u5408\u7406\u5b89\u6392\u5de5\u4f5c\u6642\u9593\uff0c\u5b78\u7fd2\u58d3\u529b\u91cb\u653e\u6280\u5de7\u3002');\n        } else if (results.socialScore > 0) {\n            advice.push('\u793e\u4ea4\u65b9\u9762\u7684\u4e8b\u4ef6\u5c0d\u60a8\u9020\u6210\u4e86\u5f71\u97ff\uff0c\u5efa\u8b70\u64f4\u5c55\u652f\u6301\u7db2\u7d61\uff0c\u8207\u4fe1\u4efb\u7684\u670b\u53cb\u5206\u4eab\u3002');\n        }\n        \n        \/\/ \u57fa\u65bc\u4e8b\u4ef6\u6027\u8cea\u7684\u5efa\u8b70\n        if (results.negativeScore > results.positiveScore) {\n            advice.push('\u60a8\u7d93\u6b77\u7684\u8ca0\u9762\u4e8b\u4ef6\u8f03\u591a\uff0c\u5efa\u8b70\u57f9\u990a\u7a4d\u6975\u7684\u61c9\u5c0d\u7b56\u7565\uff0c\u5c0b\u6c42\u5c08\u696d\u652f\u6301\u3002');\n        } else if (results.positiveScore > 0) {\n            advice.push('\u60a8\u7d93\u6b77\u4e86\u4e00\u4e9b\u6b63\u9762\u7684\u751f\u6d3b\u8b8a\u5316\uff0c\u96d6\u7136\u662f\u597d\u4e8b\u4f46\u4e5f\u9700\u8981\u9069\u61c9\uff0c\u8acb\u7d66\u81ea\u5df1\u6642\u9593\u8abf\u6574\u3002');\n        }\n        \n        \/\/ \u57fa\u65bc\u58d3\u529b\u985e\u578b\u7684\u5efa\u8b70\n        if (results.stressTypes.extreme > 0) {\n            advice.push('\u60a8\u7d93\u6b77\u4e86\u4e00\u4e9b\u5f71\u97ff\u6975\u91cd\u7684\u4e8b\u4ef6\uff0c\u9019\u7a2e\u5f37\u70c8\u53cd\u61c9\u662f\u6b63\u5e38\u7684\uff0c\u5efa\u8b70\u5c0b\u6c42\u5c08\u696d\u5fc3\u7406\u652f\u6301\u3002');\n        } else if (results.stressTypes.severe > 0) {\n            advice.push('\u60a8\u7d93\u6b77\u4e86\u4e00\u4e9b\u91cd\u5927\u751f\u6d3b\u4e8b\u4ef6\uff0c\u5efa\u8b70\u5b78\u7fd2\u4e00\u4e9b\u58d3\u529b\u7ba1\u7406\u6280\u5de7\u4f86\u5e6b\u52a9\u9069\u61c9\u3002');\n        }\n        \n        \/\/ \u901a\u7528\u5efa\u8b70\n        advice.push('\u5b9a\u671f\u9032\u884c\u81ea\u6211\u8a55\u4f30\uff0c\u95dc\u6ce8\u81ea\u5df1\u7684\u5fc3\u7406\u5065\u5eb7\u72c0\u6cc1\u3002');\n        advice.push('\u4fdd\u6301\u898f\u5f8b\u7684\u4f5c\u606f\uff0c\u9069\u7576\u904b\u52d5\uff0c\u9019\u4e9b\u90fd\u6709\u52a9\u65bc\u7de9\u89e3\u58d3\u529b\u3002');\n        advice.push('\u5982\u679c\u58d3\u529b\u6301\u7e8c\u5f71\u97ff\u65e5\u5e38\u751f\u6d3b\uff0c\u8acb\u53ca\u6642\u5c0b\u6c42\u5c08\u696d\u5e6b\u52a9\u3002');\n        \n        const adviceHtml = advice.map(item => `\n            <div class=\"d-flex align-items-start mb-2\">\n                <i class=\"bi bi-arrow-right-circle text-success me-2 mt-1 flex-shrink-0\"><\/i>\n                <span>${item}<\/span>\n            <\/div>\n        `).join('');\n        \n        elements.adviceContent.innerHTML = adviceHtml;\n    }\n    \n    \/\/ \u521d\u59cb\u5316\n    function init() {\n        initEventListeners();\n        \n        \/\/ \u78ba\u4fdd\u5728\u5f15\u5c0e\u9801\n        showPage('intro');\n    }\n    \n    \/\/ \u9801\u9762\u8f09\u5165\u5b8c\u6210\u5f8c\u521d\u59cb\u5316\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n    \n})();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>\u8fc7\u5927\u7684\u538b\u529b\uff0c\u4e5f\u4f1a\u9020\u6210\u8eab\u5fc3\u75be\u75c5\u3002\u6b64\u4e3a\u751f\u6d3b\u4e8b\u4ef6\u4e0e\u538b\u529b\u7a0b\u5ea6\u7684\u6d4b\u9a8c\u3002\u8bf7\u4ed4\u7ec6\u60f3\u60f3\uff0c\u4ee5\u4e0b\u5217\u4e3e\u7684\u751f\u6d3b\u4e8b\u4ef6\u5728\u8fc7\u53bb\u4e00\u5e74\u5185\u662f\u5426\u66fe\u7ecf\u53d1\u751f\uff0c\u5c06\u6bcf\u4e00\u9879\u53d1\u751f\u4e8b\u4ef6\u7684\u5206\u6570\u5168\u90e8\u52a0\u8d77\u6765\u5373\u4e3a\u603b\u5206\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":"","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":[183],"class_list":["post-5906","post","type-post","status-publish","format-standard","hentry","category-psychological-symptom-scales","category-neuropsychological","category-clinical","tag-pressure"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5906","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=5906"}],"version-history":[{"count":4,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5906\/revisions"}],"predecessor-version":[{"id":10168,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/5906\/revisions\/10168"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=5906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=5906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=5906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}