{"id":2880,"date":"2023-10-29T12:10:13","date_gmt":"2023-10-29T04:10:13","guid":{"rendered":"https:\/\/bookmark.tw\/?p=2880"},"modified":"2025-06-22T03:44:19","modified_gmt":"2025-06-21T19:44:19","slug":"standard-eq","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/standard-eq","title":{"rendered":"\u6807\u51c6\u60c5\u5546\u7ebf\u4e0a\u514d\u8d39\u6d4b\u9a8c\uff0850\u9898\uff09"},"content":{"rendered":"<!-- \u7d50\u69cb\u90e8\u5206 (HTML) -->\n<section id=\"quizintro9\" data-page=\"intro9\">\n  <header class=\"text-center py-5\">\n    <div class=\"container\">\n      <div class=\"row justify-content-center\">\n        <div class=\"col-lg-8\">\n          <h2 class=\"display-4 fw-bold text-primary mb-4\">\u6a19\u6e96\u60c5\u5546\u6e2c\u9a57<\/h2>\n          <p class=\"lead text-muted mb-5\">\u6e2c\u91cf\u60a8\u7684\u60c5\u7dd2\u667a\u5546\uff0c\u4e86\u89e3\u81ea\u5df1\u7684\u60c5\u7dd2\u7ba1\u7406\u80fd\u529b<\/p>\n          <p align=\"left\"> \u60c5\u7dd2\u5546\u6578\uff0c\u5373EQ\uff08emotional quotient\uff09\uff0c\u662f\u6307\u500b\u4eba\u5c0d\u60c5\u7dd2\u60c5\u611f\u7684\u8a8d\u77e5\u3001\u8868\u9054\u3001\u63a7\u5236\u3001\u8abf\u9069\u3001\u904b\u7528\u548c\u540c\u7406\u7b49\u591a\u65b9\u9762\u7684\u80fd\u529b\uff0c\u4e00\u822c\u5305\u62ec\u81ea\u6211\u60c5\u7dd2\u8a8d\u77e5\u3001\u60c5\u7dd2\u63a7\u5236\u3001\u81ea\u6211\u6fc0\u52f5\u3001\u4ed6\u4eba\u60c5\u7dd2\u8a8d\u77e5\u548c\u4eba\u969b\u95dc\u4fc2\u7ba1\u7406\u4e94\u500b\u9762\u5411\u3002<\/p>\n\n<p align=\"left\">\u60c5\u5546\u5728\u73fe\u5be6\u751f\u6d3b\u4e2d\u5f80\u5f80\u5f71\u97ff\u5230\u667a\u80fd\u7684\u767c\u63ee\u3001\u6c7a\u7b56\u7684\u5236\u5b9a\u3001\u793e\u6703\u4ea4\u5f80\u8207\u5408\u4f5c\u3001\u5c0d\u632b\u6298\u7684\u627f\u53d7\u4ee5\u53ca\u8eab\u5fc3\u5065\u5eb7\u3002\u9ad8\u60c5\u5546\u7684\u4eba\uff0c\u5728\u81ea\u4fe1\u5fc3\u3001\u4eba\u969b\u95dc\u4fc2\u3001\u5a5a\u59fb\u751f\u6d3b\u3001\u5de5\u4f5c\u8868\u73fe\u3001\u4e8b\u696d\u767c\u5c55\u3001\u4eba\u751f\u5883\u754c\u7b49\u591a\u65b9\u9762\uff0c\u90fd\u6bd4\u8f03\u5bb9\u6613\u53d6\u5f97\u4ee4\u4eba\u6eff\u610f\u7684\u6210\u5c31\u3002<\/p>\n          <div class=\"row g-4 mb-5\">\n            <div class=\"col-md-4\">\n              <div class=\"card border-0 shadow-sm h-100\">\n                <div class=\"card-body text-center p-4\">\n                  <div class=\"rounded-circle bg-success bg-opacity-10 d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n                    <i class=\"bi bi-heart-pulse fs-1 text-success\"><\/i>\n                  <\/div>\n                  <h5 class=\"card-title fw-bold\">\u60c5\u7dd2\u8a8d\u77e5<\/h5>\n                  <p class=\"card-text text-muted\">\u6df1\u5165\u4e86\u89e3\u81ea\u5df1\u7684\u60c5\u7dd2\u72c0\u614b\u8207\u53cd\u61c9\u6a21\u5f0f<\/p>\n                <\/div>\n              <\/div>\n            <\/div>\n            <div class=\"col-md-4\">\n              <div class=\"card border-0 shadow-sm h-100\">\n                <div class=\"card-body text-center p-4\">\n                  <div class=\"rounded-circle bg-warning bg-opacity-10 d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n                    <i class=\"bi bi-gear-fill fs-1 text-warning\"><\/i>\n                  <\/div>\n                  <h5 class=\"card-title fw-bold\">\u60c5\u7dd2\u63a7\u5236<\/h5>\n                  <p class=\"card-text text-muted\">\u8a55\u4f30\u60a8\u8abf\u7bc0\u548c\u7ba1\u7406\u60c5\u7dd2\u7684\u80fd\u529b\u6c34\u6e96<\/p>\n                <\/div>\n              <\/div>\n            <\/div>\n            <div class=\"col-md-4\">\n              <div class=\"card border-0 shadow-sm h-100\">\n                <div class=\"card-body text-center p-4\">\n                  <div class=\"rounded-circle bg-info bg-opacity-10 d-inline-flex align-items-center justify-content-center mb-3\" style=\"width: 80px; height: 80px;\">\n                    <i class=\"bi bi-people-fill fs-1 text-info\"><\/i>\n                  <\/div>\n                  <h5 class=\"card-title fw-bold\">\u4eba\u9645\u5173\u7cfb<\/h5>\n                  <p class=\"card-text text-muted\">\u6e2c\u9a57\u60a8\u5728\u793e\u4ea4\u4e92\u52d5\u4e2d\u7684\u6e9d\u901a\u6280\u5de7<\/p>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"bg-light rounded-3 p-4 mb-5\">\n            <div class=\"row align-items-center\">\n              <div class=\"col-md-8\">\n                <h5 class=\"fw-bold mb-2\">\u6e2c\u9a57\u7279\u8272<\/h5>\n                <ul class=\"list-unstyled mb-0\">\n                  <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>50\u9053\u5c08\u696d\u984c\u76ee\uff0c\u5168\u9762\u8a55\u4f30<\/li>\n                  <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u4e94\u5927\u9762\u5411\u8a73\u7d30\u5206\u6790<\/li>\n                  <li class=\"mb-2\"><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u500b\u4eba\u5316\u6539\u9032\u5efa\u8b70<\/li>\n                  <li><i class=\"bi bi-check-circle-fill text-success me-2\"><\/i>\u8996\u89ba\u5316\u7d50\u679c\u5448\u73fe<\/li>\n                <\/ul>\n              <\/div>\n              <div class=\"col-md-4 text-center\">\n                <i class=\"bi bi-award fs-1 text-warning\"><\/i>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <button type=\"button\" class=\"btn btn-primary btn-lg px-5 py-3 rounded-pill shadow-lg\" data-action=\"start-quiz\">\n            <i class=\"bi bi-play-fill me-2\"><\/i>\u5f00\u59cb\u6d4b\u9a8c\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/header>\n<\/section>\n\n<section id=\"quizmain9\" data-page=\"quiz9\" style=\"display: none;\">\n  <div class=\"container py-4\">\n    <div class=\"row justify-content-center\">\n      <div class=\"col-12\" style=\"max-width: 750px;\">\n        <div class=\"progress mb-4\" style=\"height: 8px;\">\n          <div class=\"progress-bar bg-primary\" role=\"progressbar\" data-progress=\"0\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\"><\/div>\n        <\/div>\n        \n        <div class=\"text-center mb-3\">\n          <span class=\"badge bg-primary fs-6 px-3 py-2\" data-question-counter>\u7b2c 1 \u984c \/ \u5171 50 \u984c<\/span>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm\">\n          <div class=\"card-body p-4\">\n            <h3 class=\"fw-bold mb-4 text-dark\" style=\"font-size: 22px;\" data-question-text><\/h3>\n            \n            <div class=\"d-grid gap-3\" data-options-container>\n              <!-- \u9078\u9805\u5c07\u900f\u904eJavaScript\u52d5\u614b\u7522\u751f -->\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"text-center mt-4\">\n          <button type=\"button\" class=\"btn btn-outline-secondary\" data-action=\"previous-question\" style=\"display: none;\">\n            <i class=\"bi bi-arrow-left me-2\"><\/i>\u4e0a\u4e00\u9898\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"quizresult9\" data-page=\"result9\" style=\"display: none;\">\n  <div class=\"container py-5\">\n    <div class=\"row justify-content-center\">\n      <div class=\"col-12\" style=\"max-width: 750px;\">\n        <header class=\"text-center mb-5\">\n          <h2 class=\"display-5 fw-bold text-primary mb-3\">\u60a8\u7684\u60c5\u5546\u6e2c\u9a57\u7d50\u679c<\/h2>\n          <div class=\"alert alert-info\" role=\"alert\">\n            <i class=\"bi bi-info-circle me-2\"><\/i>\n            \u672c\u6e2c\u9a57\u7d50\u679c\u50c5\u4f9b\u53c3\u8003\uff0c\u4e0d\u80fd\u4f5c\u70ba\u8a3a\u65b7\u4f9d\u64da\n          <\/div>\n        <\/header>\n\n        <div class=\"card border-0 shadow-sm mb-4\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3 text-center\">\u7e3d\u9ad4\u5f97\u5206<\/h4>\n            <div class=\"text-center\">\n              <div class=\"display-4 fw-bold text-primary mb-2\" data-total-score>0<\/div>\n              <div class=\"fs-5 text-muted\" data-total-level>\u8a08\u7b97\u4e2d&#8230;<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm mb-4\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3 text-center\">\u5f97\u5206\u5206\u5e03\u4f4d\u7f6e<\/h4>\n            <div class=\"d-flex justify-content-center\">\n              <canvas data-score-distribution style=\"max-width: 100%; height: 300px;\"><\/canvas>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm mb-4\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3\">\u4e94\u9762\u5411\u96f7\u9054\u5716<\/h4>\n            <div class=\"d-flex justify-content-center\">\n              <canvas data-radar-chart style=\"max-width: 400px; max-height: 400px;\"><\/canvas>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm mb-4\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3\">\u8be6\u7ec6\u5206\u6790<\/h4>\n            <div data-detailed-analysis>\n              <!-- \u8a73\u7d30\u5206\u6790\u5167\u5bb9\u5c07\u900f\u904eJavaScript\u7522\u751f -->\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm mb-4\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3\">\u5404\u9762\u5411\u5f97\u5206<\/h4>\n            <div data-dimensions-breakdown>\n              <!-- \u9762\u5411\u5206\u89e3\u5c07\u900f\u904eJavaScript\u7522\u751f -->\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"card border-0 shadow-sm mb-5\">\n          <div class=\"card-body p-4\">\n            <h4 class=\"card-title fw-bold mb-3\">\u4e2a\u4eba\u5316\u5efa\u8bae<\/h4>\n            <div data-personalized-suggestions>\n              <!-- \u500b\u4eba\u5316\u5efa\u8b70\u5c07\u900f\u904eJavaScript\u7522\u751f -->\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"text-center\">\n          <button type=\"button\" class=\"btn btn-primary btn-lg px-5 py-3 rounded-pill shadow-lg\" data-action=\"restart-quiz\">\n            <i class=\"bi bi-arrow-repeat me-2\"><\/i>\u91cd\u65b0\u6d4b\u9a8c\n          <\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u6a23\u5f0f\u90e8\u5206 (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<style>\n\/* \u81ea\u8a02\u6a23\u5f0f *\/\n.eq-quiz-container {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n  line-height: 1.6;\n  max-width: 750px;\n  margin: 0 auto;\n}\n\n.eq-quiz-option {\n  transition: all 0.3s ease;\n  border: 2px solid #e9ecef;\n  background: #ffffff;\n  color: #495057;\n  font-size: 18px;\n  padding: 1rem 1rem 1rem 4rem;\n  text-align: left;\n  min-height: 60px;\n  position: relative;\n  cursor: pointer;\n}\n\n.eq-quiz-option:hover {\n  border-color: #6c757d;\n  background: #e8f5e8;\n  color: #495057;\n  transform: translateY(-2px);\n  box-shadow: 0 4px 12px rgba(108, 117, 125, 0.15);\n}\n\n.eq-quiz-option.selected {\n  border-color: #0d6efd;\n  background: #0d6efd;\n  color: #ffffff;\n  transform: translateY(-2px);\n  box-shadow: 0 4px 12px rgba(13, 110, 253, 0.3);\n}\n\n.eq-quiz-option.selected:hover {\n  background: #0b5ed7;\n  border-color: #0b5ed7;\n  color: #ffffff;\n}\n\n.eq-quiz-option::before {\n  content: '';\n  position: absolute;\n  left: 1rem;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 24px;\n  height: 24px;\n  border: 2px solid #dee2e6;\n  border-radius: 50%;\n  background: #ffffff;\n  transition: all 0.3s ease;\n}\n\n.eq-quiz-option:hover::before {\n  border-color: #6c757d;\n}\n\n.eq-quiz-option.selected::before {\n  border-color: #ffffff;\n  background: #ffffff;\n}\n\n.eq-quiz-option.selected::after {\n  content: '\u2713';\n  position: absolute;\n  left: 1.25rem;\n  top: 50%;\n  transform: translateY(-50%);\n  color: #0d6efd;\n  font-weight: bold;\n  font-size: 16px;\n}\n\n.card {\n  transition: all 0.3s ease;\n}\n\n.card:hover {\n  transform: translateY(-3px);\n}\n\n.btn {\n  transition: all 0.3s ease;\n  min-width: 44px;\n  min-height: 44px;\n}\n\n.btn:hover {\n  transform: translateY(-2px);\n}\n\n.progress {\n  transition: all 0.5s ease;\n}\n\n@media (max-width: 768px) {\n  .display-4 {\n    font-size: 2.5rem;\n  }\n  \n  .eq-quiz-option {\n    font-size: 16px;\n    padding: 0.875rem 0.875rem 0.875rem 3.5rem;\n    min-height: 50px;\n  }\n  \n  .eq-quiz-option::before {\n    width: 20px;\n    height: 20px;\n    left: 0.875rem;\n  }\n  \n  .eq-quiz-option.selected::after {\n    left: 1rem;\n    font-size: 14px;\n  }\n}\n\n\/* \u5716\u8868\u6a23\u5f0f *\/\ncanvas {\n  max-width: 100% !important;\n  height: auto !important;\n}\n\n.dimension-card {\n  transition: all 0.3s ease;\n  border-left: 4px solid #dee2e6;\n}\n\n.dimension-card:hover {\n  border-left-color: #6c757d;\n  transform: translateX(5px);\n}\n\n.dimension-excellent { border-left-color: #28a745 !important; }\n.dimension-good { border-left-color: #20c997 !important; }\n.dimension-average { border-left-color: #ffc107 !important; }\n.dimension-poor { border-left-color: #fd7e14 !important; }\n.dimension-weak { border-left-color: #dc3545 !important; }\n<\/style>\n\n<!-- \u884c\u70ba\u90e8\u5206 (JavaScript) -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<script>\n(function() {\n  'use strict';\n\n  \/\/ \u6e2c\u9a57\u984c\u76ee\u8cc7\u6599\n  const quizData = [\n    {\n      dimension: '\u81ea\u6211\u60c5\u7dd2\u8a8d\u77e5',\n      questions: [\n        { text: '\u5c0d\u81ea\u5df1\u7684\u6027\u683c\u985e\u578b\u6709\u6bd4\u8f03\u6e05\u695a\u7684\u4e86\u89e3\u3002', scoring: [2, 1, 0] },\n        { text: '\u77e5\u9053\u81ea\u5df1\u5728\u4ec0\u9ebc\u6a23\u7684\u60c5\u6cc1\u4e0b\u5bb9\u6613\u767c\u751f\u60c5\u7dd2\u6ce2\u52d5\u3002', scoring: [2, 1, 0] },\n        { text: '\u61c2\u5f97\u5f9e\u4ed6\u4eba\u7684\u8a00\u8ac7\u8207\u8868\u60c5\u4e2d\u767c\u73fe\u81ea\u5df1\u7684\u60c5\u7dd2\u8b8a\u5316\u3002', scoring: [2, 1, 0] },\n        { text: '\u6709\u636b\u5fc3\u81ea\u554f\u7684\u53cd\u601d\u7fd2\u6163\u3002', scoring: [2, 1, 0] },\n        { text: '\u6027\u60c5\u4e0d\u5920\u958b\u6717\uff0c\u5f88\u5c11\u5c55\u9732\u7b11\u5bb9\u3002', scoring: [2, 1, 0] },\n        { text: '\u7121\u6cd5\u78ba\u77e5\u81ea\u5df1\u662f\u5728\u70ba\u4f55\u751f\u6c23\u3001\u9ad8\u8208\u3001\u50b7\u5fc3\u6216\u5ac9\u5992\u3002', scoring: [0, 1, 2] },\n        { text: '\u5373\u4f7f\u6709\u751f\u6c23\u3001\u9ad8\u8208\u3001\u50b7\u5fc3\u6216\u5ac9\u5992\u7684\u4e8b\u4e5f\u4e0d\u9858\u6216\u4e0d\u80fd\u8868\u9054\u51fa\u4f86\u3002', scoring: [0, 1, 2] },\n        { text: '\u60c5\u7dd2\u8d77\u4f0f\u5f88\u5927\uff0c\u81ea\u5df1\u90fd\u4e0d\u4e86\u89e3\u662f\u70ba\u4ec0\u9ebc\u3002', scoring: [0, 1, 2] },\n        { text: '\u4e0d\u77e5\u9053\u81ea\u5df1\u7684\u611f\u60c5\u662f\u8106\u5f31\u9084\u662f\u5805\u5f37\u3002', scoring: [0, 1, 2] },\n        { text: '\u5f88\u96e3\u627e\u5230\u8868\u9054\u60c5\u7dd2\u7684\u9069\u7576\u65b9\u5f0f\uff0c\u8981\u9ebc\u8868\u793a\u61a4\u6012\uff0c\u8981\u9ebc\u96b1\u5fcd\u3002', scoring: [0, 1, 2] }\n      ]\n    },\n    {\n      dimension: '\u60c5\u7dd2\u63a7\u5236',\n      questions: [\n        { text: '\u53d7\u5230\u632b\u6298\u6216\u59d4\u5c48\uff0c\u80fd\u5920\u4fdd\u6301\u80fd\u5c48\u80fd\u4f38\u7684\u6a02\u89c0\u5fc3\u614b\u3002', scoring: [2, 1, 0] },\n        { text: '\u51fa\u73fe\u611f\u60c5\u885d\u52d5\u6216\u767c\u6012\u6642\uff0c\u80fd\u5920\u8f03\u5feb\u5730\u300c\u81ea\u6211\u7184\u706b\u300d\u3002', scoring: [2, 1, 0] },\n        { text: '\u9047\u6709\u4e0d\u9806\u5fc3\u7684\u4e8b\u80fd\u5920\u6291\u5236\u81ea\u5df1\u7684\u7169\u60f1\u3002', scoring: [2, 1, 0] },\n        { text: '\u7cbe\u795e\u8655\u65bc\u7dca\u5f35\u72c0\u614b\uff0c\u4e0d\u80fd\u81ea\u6211\u653e\u9b06\u3002', scoring: [0, 1, 2] },\n        { text: '\u505a\u4ec0\u9ebc\u4e8b\u90fd\u5f88\u6025\uff0c\u89ba\u5f97\u81ea\u5df1\u5c6c\u65bc\u8010\u4e0d\u4f4f\u6027\u5b50\u7684\u4eba\u3002', scoring: [0, 1, 2] },\n        { text: '\u60c5\u7dd2\u6ce2\u52d5\u8d77\u4f0f\uff0c\u5f80\u5f80\u4e0d\u80fd\u81ea\u63a7\u3002', scoring: [0, 1, 2] },\n        { text: '\u5c0d\u81ea\u5df1\u671f\u671b\u5f88\u9ad8\uff0c\u9054\u4e0d\u5230\u6a19\u6e96\u6642\u6703\u5f88\u751f\u6c23\u6216\u767c\u813e\u6c23\u3002', scoring: [0, 1, 2] },\n        { text: '\u807d\u53d6\u6279\u8a55\u610f\u898b\u5305\u62ec\u8207\u5be6\u969b\u60c5\u6cc1\u4e0d\u7b26\u7684\u610f\u898b\u6642\uff0c\u6c92\u6709\u803f\u803f\u65bc\u61f7\u3002', scoring: [2, 1, 0] },\n        { text: '\u5c0d\u4eba\u5c0d\u4e8b\u4e0d\u559c\u6b61\u6df1\u601d\u719f\u616e\uff0c\u4e3b\u5f35\u300c\u8ddf\u8457\u611f\u89ba\u8d70\u300d\u3002', scoring: [0, 1, 2] },\n        { text: '\u9047\u5230\u610f\u60f3\u4e0d\u5230\u7684\u7a81\u767c\u4e8b\u4ef6\uff0c\u80fd\u5920\u51b7\u975c\u61c9\u5c0d\u3002', scoring: [2, 1, 0] }\n      ]\n    },\n    {\n      dimension: '\u81ea\u6211\u6fc0\u52f5',\n      questions: [\n        { text: '\u76f8\u4fe1\u300c\u5931\u6557\u70ba\u6210\u529f\u4e4b\u6bcd\u300d\u3002', scoring: [2, 1, 0] },\n        { text: '\u5728\u4eba\u751f\u9053\u8def\u4e0a\u7684\u6253\u62da\u4e2d\uff0c\u76f8\u4fe1\u81ea\u5df1\u80fd\u5920\u6210\u529f\u3002', scoring: [2, 1, 0] },\n        { text: '\u4e0d\u9858\u5617\u8a66\u6240\u8b02\u65b0\u4e8b\u7269\uff0c\u5c0d\u81ea\u5df1\u4e0d\u6703\u7684\u4e8b\u60c5\u6703\u611f\u5230\u7121\u804a\u3001\u4f4e\u7d1a\u8da3\u5473\u3002', scoring: [0, 1, 2] },\n        { text: '\u6c7a\u5b9a\u4e86\u8981\u505a\u7684\u4e8b\u4e0d\u8f15\u8a00\u653e\u68c4\u3002', scoring: [2, 1, 0] },\n        { text: '\u56e0\u70ba\u5bb3\u6015\u81ea\u5df1\u6703\u72af\u932f\uff0c\u6240\u4ee5\u4e0d\u6562\u627f\u64d4\u65b0\u7684\u8077\u8cac\u3002', scoring: [0, 1, 2] },\n        { text: '\u5c0d\u65bc\u81ea\u5df1\u8a72\u505a\u7684\u4e8b\uff0c\u5f88\u96e3\u4e3b\u52d5\u5730\u8ca0\u8cac\u5230\u5e95\u3002', scoring: [0, 1, 2] },\n        { text: '\u5de5\u4f5c\u6216\u5b78\u7fd2\u4e0a\u9047\u5230\u56f0\u96e3\uff0c\u80fd\u5920\u81ea\u6211\u9f13\u52f5\u514b\u670d\u56f0\u96e3\u3002', scoring: [2, 1, 0] },\n        { text: '\u6c92\u5fc5\u8981\u8981\u6c42\u81ea\u5df1\u4ec0\u9ebc\uff0c\u89ba\u5f97\u81ea\u5df1\u505a\u4e0d\u5230\u7684\u4e8b\u4e0d\u5982\u4e7e\u8106\u653e\u68c4\u3002', scoring: [0, 1, 2] },\n        { text: '\u8fa6\u4e8b\u51fa\u4e86\u5dee\u932f\u81ea\u5df1\u6b78\u7d0d\u7d93\u9a57\u6559\u8a13\uff0c\u4e0d\u6028\u5929\u5c24\u4eba\u3002', scoring: [2, 1, 0] },\n        { text: '\u4e00\u6b21\u60f3\u505a\u5f88\u591a\u4e8b\uff0c\u56e0\u6b64\u986f\u5f97\u4e0d\u5920\u5c08\u5fc3\u3002', scoring: [0, 1, 2] }\n      ]\n    },\n    {\n      dimension: '\u4ed6\u4eba\u60c5\u7dd2\u8a8d\u77e5',\n      questions: [\n        { text: '\u5728\u610f\u5225\u4eba\u5c0d\u81ea\u5df1\u7684\u770b\u6cd5\uff0c\u751f\u6d3b\u7121\u6cd5\u8f15\u9b06\u81ea\u5728\u3002', scoring: [0, 1, 2] },\n        { text: '\u8207\u4eba\u4ea4\u5f80\u6642\u77e5\u9053\u600e\u6a23\u53bb\u4e86\u89e3\u548c\u5c0a\u91cd\u4ed6\u4eba\u7684\u60c5\u611f\u3002', scoring: [2, 1, 0] },\n        { text: '\u5225\u4eba\u7684\u611f\u53d7\u662f\u4ec0\u9ebc\u5c0d\u6211\u4f86\u8aaa\u6c92\u6709\u5fc5\u8981\u53bb\u8003\u616e\u3002', scoring: [0, 1, 2] },\n        { text: '\u8207\u4eba\u76f8\u8655\u6642\u4e0d\u5584\u65bc\u4e86\u89e3\u5c0d\u65b9\u7684\u60f3\u6cd5\u6216\u600e\u6a23\u770b\u5f85\u4e8b\u7269\u3002', scoring: [0, 1, 2] },\n        { text: '\u5c0d\u540c\u5b78\u6216\u8005\u540c\u4e8b\u5011\u7684\u813e\u6c23\u6027\u683c\u6709\u4e00\u5b9a\u7684\u4e86\u89e3\u3002', scoring: [2, 1, 0] },\n        { text: '\u7576\u5225\u4eba\u63d0\u51fa\u554f\u984c\u6642\u6703\u4e0d\u77e5\u600e\u6a23\u56de\u7b54\u624d\u8b93\u4eba\u6eff\u610f\u3002', scoring: [0, 1, 2] },\n        { text: '\u7d93\u5e38\u7559\u610f\u81ea\u5df1\u5468\u570d\u4eba\u5011\u7684\u60c5\u7dd2\u8b8a\u5316\u3002', scoring: [2, 1, 0] },\n        { text: '\u4e0d\u8a8d\u70ba\u53c3\u52a0\u793e\u4ea4\u6d3b\u52d5\u662f\u6d6a\u8cbb\u6642\u9593\u3002', scoring: [2, 1, 0] },\n        { text: '\u80fd\u5920\u8aaa\u51fa\u89aa\u4eba\u548c\u670b\u53cb\u5404\u81ea\u7684\u4e00\u4e9b\u512a\u9ede\u548c\u9577\u8655\u3002', scoring: [2, 1, 0] },\n        { text: '\u50b7\u5bb3\u5230\u5225\u4eba\u6216\u50b7\u53ca\u5225\u4eba\u7684\u611f\u60c5\u6642\u81ea\u5df1\u4e0d\u80fd\u89ba\u5bdf\u3002', scoring: [0, 1, 2] }\n      ]\n    },\n    {\n      dimension: '\u4eba\u969b\u95dc\u4fc2\u7ba1\u7406',\n      questions: [\n        { text: '\u6c92\u6709\u4e0d\u9858\u540c\u4ed6\u4eba\u5408\u4f5c\u7684\u5fc3\u614b\u3002', scoring: [2, 1, 0] },\n        { text: '\u5225\u4eba\u4e0d\u540c\u610f\u81ea\u5df1\u7684\u610f\u898b\u6642\u5c31\u6703\u8868\u73fe\u51fa\u4e0d\u6eff\uff0c\u6216\u907f\u800c\u9060\u4e4b\u3002', scoring: [0, 1, 2] },\n        { text: '\u5c0d\u6709\u7d04\u5728\u5148\u7684\u4e8b\uff0c\u7121\u6cd5\u5c65\u884c\u514c\u73fe\uff0c\u6216\u8349\u7387\u4e86\u4e8b\u3002', scoring: [0, 1, 2] },\n        { text: '\u89ba\u5f97\u59d4\u66f2\u6c42\u5168\u662f\u89e3\u6c7a\u77db\u76fe\u7684\u597d\u65b9\u6cd5\u3002', scoring: [0, 1, 2] },\n        { text: '\u8207\u4eba\u5171\u4e8b\u61c2\u5f97\u4e0d\u80fd\u300c\u722d\u529f\u65bc\u5df1\uff0c\u63a8\u904e\u65bc\u4eba\u300d\u3002', scoring: [2, 1, 0] },\n        { text: '\u77e5\u9053\u5931\u4fe1\u548c\u6b3a\u9a19\u662f\u53cb\u8abc\u7684\u5927\u6575\u3002', scoring: [2, 1, 0] },\n        { text: '\u898b\u5230\u4ed6\u4eba\u7684\u9032\u6b65\u548c\u6210\u5c31\u6c92\u6709\u4e0d\u9ad8\u8208\u7684\u5fc3\u60c5\u3002', scoring: [2, 1, 0] },\n        { text: '\u5c0d\u55ae\u4f4d\u3001\u5b78\u6821\u53ca\u5bb6\u5ead\u65e2\u5b9a\u7684\u5236\u5ea6\u898f\u5247\u4e0d\u80fd\u7167\u7ae0\u884c\u4e8b\u3002', scoring: [0, 1, 2] },\n        { text: '\u8207\u4eba\u76f8\u8655\u80fd\u5920\u300c\u56b4\u4ee5\u5f8b\u5df1\uff0c\u5bec\u4ee5\u5f85\u4eba\u300d\u3002', scoring: [2, 1, 0] },\n        { text: '\u64d4\u5fc3\u81ea\u5df1\u7684\u610f\u898b\u6216\u5efa\u8b70\u4e0d\u597d\u6642\uff0c\u5be7\u9858\u96a8\u8072\u9644\u548c\u3002', scoring: [0, 1, 2] }\n      ]\n    }\n  ];\n\n  const options = ['\u7e3d\u662f', '\u6709\u6642', '\u5f9e\u4e0d'];\n\n  \/\/ \u8a55\u5206\u5340\u9593\u5b9a\u7fa9\n  const scoreRanges = [\n    { min: 80, max: 100, label: '\u512a\u79c0', color: '#28a745' },\n    { min: 67, max: 79, label: '\u826f\u597d', color: '#20c997' },\n    { min: 53, max: 66, label: '\u4e2d\u7b49', color: '#ffc107' },\n    { min: 40, max: 52, label: '\u5f85\u63d0\u5347', color: '#fd7e14' },\n    { min: 0, max: 39, label: '\u9700\u5e6b\u52a9', color: '#dc3545' }\n  ];\n\n  \/\/ \u61c9\u7528\u7a0b\u5f0f\u72c0\u614b\n  class EQQuiz {\n    constructor() {\n      this.currentQuestion = 0;\n      this.answers = [];\n      this.allQuestions = this.flattenQuestions();\n      this.dimensionScores = {};\n      this.totalScore = 0;\n      this.radarChart = null;\n      this.distributionChart = null;\n      \n      this.initializeElements();\n      this.bindEvents();\n    }\n\n    initializeElements() {\n      \/\/ \u5feb\u53d6DOM\u5143\u7d20\n      this.elements = {\n        introSection: document.querySelector('[data-page=\"intro9\"]'),\n        quizSection: document.querySelector('[data-page=\"quiz9\"]'),\n        resultSection: document.querySelector('[data-page=\"result9\"]'),\n        progressBar: document.querySelector('.progress-bar'),\n        questionCounter: document.querySelector('[data-question-counter]'),\n        questionText: document.querySelector('[data-question-text]'),\n        optionsContainer: document.querySelector('[data-options-container]'),\n        previousBtn: document.querySelector('[data-action=\"previous-question\"]'),\n        totalScore: document.querySelector('[data-total-score]'),\n        totalLevel: document.querySelector('[data-total-level]'),\n        detailedAnalysis: document.querySelector('[data-detailed-analysis]'),\n        dimensionsBreakdown: document.querySelector('[data-dimensions-breakdown]'),\n        personalizedSuggestions: document.querySelector('[data-personalized-suggestions]'),\n        radarCanvas: document.querySelector('[data-radar-chart]'),\n        distributionCanvas: document.querySelector('[data-score-distribution]')\n      };\n    }\n\n    flattenQuestions() {\n      const flattened = [];\n      quizData.forEach((dimension, dimIndex) => {\n        dimension.questions.forEach((question, qIndex) => {\n          flattened.push({\n            ...question,\n            dimensionName: dimension.dimension,\n            dimensionIndex: dimIndex,\n            questionIndex: qIndex\n          });\n        });\n      });\n      return flattened;\n    }\n\n    bindEvents() {\n      \/\/ \u4e8b\u4ef6\u59d4\u8a17\n      document.addEventListener('click', (e) => {\n        const action = e.target.closest('[data-action]')?.dataset.action;\n        \n        switch(action) {\n          case 'start-quiz':\n            this.startQuiz();\n            break;\n          case 'previous-question':\n            this.previousQuestion();\n            break;\n          case 'restart-quiz':\n            this.restartQuiz();\n            break;\n        }\n\n        \/\/ \u9078\u9805\u9ede\u64ca\n        if (e.target.closest('[data-option]')) {\n          this.selectOption(e.target.closest('[data-option]'));\n        }\n      });\n    }\n\n    startQuiz() {\n      this.showSection('quiz9');\n      this.renderQuestion();\n      this.scrollToTop();\n    }\n\n    renderQuestion() {\n      const question = this.allQuestions[this.currentQuestion];\n      \n      \/\/ \u66f4\u65b0\u9032\u5ea6\n      const progress = ((this.currentQuestion + 1) \/ this.allQuestions.length) * 100;\n      this.elements.progressBar.style.width = `${progress}%`;\n      this.elements.progressBar.setAttribute('aria-valuenow', progress);\n      \n      \/\/ \u66f4\u65b0\u8a08\u6578\u5668\n      this.elements.questionCounter.textContent = `\u7b2c ${this.currentQuestion + 1} \u984c \/ \u5171 ${this.allQuestions.length} \u984c`;\n      \n      \/\/ \u66f4\u65b0\u984c\u76ee\n      this.elements.questionText.textContent = question.text;\n      \n      \/\/ \u5448\u73fe\u9078\u9805\n      this.renderOptions();\n      \n      \/\/ \u986f\u793a\/\u96b1\u85cf\u4e0a\u4e00\u984c\u6309\u9215\n      this.elements.previousBtn.style.display = this.currentQuestion > 0 ? 'inline-block' : 'none';\n    }\n\n    renderOptions() {\n      this.elements.optionsContainer.innerHTML = '';\n      \n      options.forEach((option, index) => {\n        const card = document.createElement('div');\n        card.className = 'card eq-quiz-option';\n        card.setAttribute('data-option', index);\n        card.textContent = option;\n        \n        \/\/ \u5982\u679c\u5df2\u6709\u9078\u64c7\uff0c\u6a19\u8a18\u70ba\u5df2\u9078\n        if (this.answers[this.currentQuestion] === index) {\n          card.classList.add('selected');\n        }\n        \n        this.elements.optionsContainer.appendChild(card);\n      });\n    }\n\n    selectOption(optionElement) {\n      const optionValue = parseInt(optionElement.dataset.option);\n      \n      \/\/ \u79fb\u9664\u5176\u4ed6\u9078\u9805\u7684\u9078\u4e2d\u72c0\u614b\n      this.elements.optionsContainer.querySelectorAll('[data-option]').forEach(btn => {\n        btn.classList.remove('selected');\n      });\n      \n      \/\/ \u6a19\u8a18\u76ee\u524d\u9078\u9805\u70ba\u5df2\u9078\n      optionElement.classList.add('selected');\n      \n      \/\/ \u8a18\u9304\u7b54\u6848\n      this.answers[this.currentQuestion] = optionValue;\n      \n      \/\/ \u5ef6\u9072\u9032\u5165\u4e0b\u4e00\u984c\n      setTimeout(() => {\n        this.nextQuestion();\n      }, 300);\n    }\n\n    nextQuestion() {\n      if (this.currentQuestion < this.allQuestions.length - 1) {\n        this.currentQuestion++;\n        this.renderQuestion();\n        this.scrollToTop();\n      } else {\n        this.finishQuiz();\n      }\n    }\n\n    previousQuestion() {\n      if (this.currentQuestion > 0) {\n        this.currentQuestion--;\n        this.renderQuestion();\n        this.scrollToTop();\n      }\n    }\n\n    finishQuiz() {\n      this.calculateScores();\n      this.showResults();\n      this.scrollToTop();\n    }\n\n    calculateScores() {\n      \/\/ \u521d\u59cb\u5316\u9762\u5411\u5206\u6578\n      quizData.forEach(dimension => {\n        this.dimensionScores[dimension.dimension] = 0;\n      });\n\n      \/\/ \u8a08\u7b97\u5404\u9762\u5411\u5206\u6578\n      this.allQuestions.forEach((question, index) => {\n        const answer = this.answers[index];\n        if (answer !== undefined) {\n          const score = question.scoring[answer];\n          this.dimensionScores[question.dimensionName] += score;\n        }\n      });\n\n      \/\/ \u8a08\u7b97\u7e3d\u5206\n      this.totalScore = Object.values(this.dimensionScores).reduce((sum, score) => sum + score, 0);\n    }\n\n    showResults() {\n      this.showSection('result9');\n      this.renderResults();\n    }\n\n    renderResults() {\n      \/\/ \u986f\u793a\u7e3d\u5206\n      this.elements.totalScore.textContent = this.totalScore;\n      this.elements.totalLevel.textContent = this.getTotalLevel();\n\n      \/\/ \u5448\u73fe\u8a73\u7d30\u5206\u6790\n      this.renderDetailedAnalysis();\n      \n      \/\/ \u5448\u73fe\u9762\u5411\u5206\u89e3\n      this.renderDimensionsBreakdown();\n      \n      \/\/ \u5448\u73fe\u500b\u4eba\u5316\u5efa\u8b70\n      this.renderPersonalizedSuggestions();\n      \n      \/\/ \u5448\u73fe\u5716\u8868\n      this.renderRadarChart();\n      this.renderScoreDistribution();\n    }\n\n    getTotalLevel() {\n      if (this.totalScore >= 80) return '\u60c5\u5546\u8868\u73fe\u512a\u79c0';\n      if (this.totalScore >= 67) return '\u60c5\u5546\u8868\u73fe\u826f\u597d';\n      if (this.totalScore >= 53) return '\u60c5\u5546\u8868\u73fe\u4e2d\u7b49';\n      if (this.totalScore >= 40) return '\u60c5\u5546\u6709\u5f85\u63d0\u5347';\n      return '\u5efa\u8b70\u5c0b\u6c42\u5354\u52a9';\n    }\n\n    renderDetailedAnalysis() {\n      let analysis = '';\n      \n      if (this.totalScore >= 80) {\n        analysis = '\u60a8\u7684\u6574\u9ad4\u60c5\u5546\u8868\u73fe\u4f4d\u65bc\u524d15%\uff0c\u5728\u591a\u6578\u60c5\u7dd2\u548c\u4eba\u969b\u60c5\u5883\u4e2d\u90fd\u80fd\u5c55\u73fe\u826f\u597d\u7684\u9069\u61c9\u80fd\u529b\u3002\u8acb\u6ce8\u610f\u9019\u4e0d\u4ee3\u8868\u5b8c\u7f8e\uff0c\u4ecd\u53ef\u95dc\u6ce8\u500b\u5225\u9762\u5411\u7684\u5e73\u8861\u767c\u5c55\u3002';\n      } else if (this.totalScore >= 67) {\n        analysis = '\u60a8\u7684\u60c5\u5546\u6c34\u6e96\u9ad8\u65bc\u5e73\u5747\uff0c\u5728\u5927\u591a\u6578\u60c5\u6cc1\u4e0b\u80fd\u6709\u6548\u8655\u7406\u60c5\u7dd2\u548c\u4eba\u969b\u95dc\u4fc2\u3002\u53ef\u7279\u5225\u95dc\u6ce8\u5f97\u5206\u8f03\u4f4e\u7684\u9762\u5411\uff0c\u6301\u7e8c\u7cbe\u9032\u3002';\n      } else if (this.totalScore >= 53) {\n        analysis = '\u60a8\u7684\u60c5\u5546\u6c34\u6e96\u63a5\u8fd1\u4e00\u822c\u6210\u4eba\u5e73\u5747\u8868\u73fe\u3002\u9019\u662f\u5f88\u6b63\u5e38\u7684\u7d50\u679c\uff0c\u4ee3\u8868\u60a8\u5728\u67d0\u4e9b\u9818\u57df\u8868\u73fe\u826f\u597d\uff0c\u67d0\u4e9b\u9818\u57df\u6709\u6210\u9577\u7a7a\u9593\u3002';\n      } else if (this.totalScore >= 40) {\n        analysis = '\u60a8\u7684\u5206\u6578\u4f4e\u65bc\u591a\u6578\u4eba\uff0c\u53ef\u80fd\u5728\u60c5\u7dd2\u7ba1\u7406\u6216\u4eba\u969b\u4e92\u52d5\u4e0a\u7d93\u5e38\u611f\u5230\u6311\u6230\u3002\u5efa\u8b70\u5f9e\u81ea\u6211\u89ba\u5bdf\u958b\u59cb\uff0c\u5faa\u5e8f\u6f38\u9032\u5730\u7df4\u7fd2\u76f8\u95dc\u6280\u80fd\u3002';\n      } else {\n        analysis = '\u60a8\u7684\u5206\u6578\u986f\u8457\u4f4e\u65bc\u5e73\u5747\u6c34\u6e96\uff0c\u5efa\u8b70\u8003\u616e\u5c0b\u6c42\u5fc3\u7406\u5065\u5eb7\u5c08\u696d\u4eba\u54e1\u7684\u5354\u52a9\uff0c\u4ee5\u7372\u5f97\u66f4\u500b\u4eba\u5316\u7684\u6307\u5c0e\u548c\u652f\u6301\u3002';\n      }\n\n      this.elements.detailedAnalysis.innerHTML = `<p class=\"fs-5 text-muted\">${analysis}<\/p>`;\n    }\n\n    renderDimensionsBreakdown() {\n      let html = '<div class=\"row g-3\">';\n      \n      Object.entries(this.dimensionScores).forEach(([dimension, score]) => {\n        const percentage = Math.round((score \/ 20) * 100);\n        const level = this.getDimensionLevel(score);\n        const levelClass = this.getDimensionLevelClass(score);\n        \n        html += `\n          <div class=\"col-md-6\">\n            <div class=\"card border-0 bg-light dimension-card ${levelClass} h-100\">\n              <div class=\"card-body p-3\">\n                <h6 class=\"card-title fw-bold mb-2\">${dimension}<\/h6>\n                <div class=\"d-flex align-items-center mb-2\">\n                  <span class=\"badge bg-primary me-2\">${score}\/20<\/span>\n                  <span class=\"text-muted\">${percentage}%<\/span>\n                <\/div>\n                <div class=\"progress mb-2\" style=\"height: 6px;\">\n                  <div class=\"progress-bar bg-primary\" style=\"width: ${percentage}%\"><\/div>\n                <\/div>\n                <small class=\"text-muted\">${level}<\/small>\n              <\/div>\n            <\/div>\n          <\/div>\n        `;\n      });\n      \n      html += '<\/div>';\n      this.elements.dimensionsBreakdown.innerHTML = html;\n    }\n\n    getDimensionLevel(score) {\n      if (score >= 17) return '\u8868\u73fe\u512a\u79c0';\n      if (score >= 14) return '\u8868\u73fe\u826f\u597d';\n      if (score >= 11) return '\u8868\u73fe\u4e2d\u7b49';\n      if (score >= 8) return '\u9700\u8981\u6539\u5584';\n      return '\u9700\u8981\u52a0\u5f37';\n    }\n\n    getDimensionLevelClass(score) {\n      if (score >= 17) return 'dimension-excellent';\n      if (score >= 14) return 'dimension-good';\n      if (score >= 11) return 'dimension-average';\n      if (score >= 8) return 'dimension-poor';\n      return 'dimension-weak';\n    }\n\n    renderPersonalizedSuggestions() {\n      const suggestions = this.generatePersonalizedSuggestions();\n      let html = '<div class=\"row g-3\">';\n      \n      suggestions.forEach((suggestion, index) => {\n        html += `\n          <div class=\"col-12\">\n            <div class=\"alert alert-light border-start border-4 border-${suggestion.color}\">\n              <h6 class=\"alert-heading fw-bold mb-2\">\n                <i class=\"bi bi-${suggestion.icon} me-2\"><\/i>${suggestion.title}\n              <\/h6>\n              <p class=\"mb-0\">${suggestion.content}<\/p>\n            <\/div>\n          <\/div>\n        `;\n      });\n      \n      html += '<\/div>';\n      this.elements.personalizedSuggestions.innerHTML = html;\n    }\n\n    generatePersonalizedSuggestions() {\n      const suggestions = [];\n      \n      \/\/ \u6839\u64da\u7e3d\u5206\u7d66\u51fa\u5efa\u8b70\n      if (this.totalScore >= 80) {\n        suggestions.push({\n          title: '\u4fdd\u6301\u512a\u52e2',\n          content: '\u60a8\u7684\u60c5\u5546\u8868\u73fe\u512a\u79c0\uff0c\u5efa\u8b70\u6301\u7e8c\u95dc\u6ce8\u5f31\u52e2\u9762\u5411\u7684\u5e73\u8861\u767c\u5c55\uff0c\u4e26\u53ef\u8003\u616e\u5354\u52a9\u4ed6\u4eba\u63d0\u5347\u60c5\u5546\u6280\u80fd\u3002',\n          icon: 'award',\n          color: 'success'\n        });\n      } else if (this.totalScore < 53) {\n        suggestions.push({\n          title: '\u57fa\u790e\u5efa\u8a2d',\n          content: '\u5efa\u8b70\u5f9e\u60c5\u7dd2\u65e5\u8a18\u958b\u59cb\uff0c\u6bcf\u5929\u8a18\u93043\u500b\u60c5\u7dd2\u6642\u523b\uff0c\u7df4\u7fd2\u8b58\u5225\u548c\u547d\u540d\u60c5\u7dd2\uff0c\u9019\u662f\u63d0\u5347\u60c5\u5546\u7684\u7b2c\u4e00\u6b65\u3002',\n          icon: 'journal-text',\n          color: 'warning'\n        });\n      }\n\n      \/\/ \u6839\u64da\u9762\u5411\u5206\u6578\u7d66\u51fa\u5177\u9ad4\u5efa\u8b70\n      Object.entries(this.dimensionScores).forEach(([dimension, score]) => {\n        if (score < 11) {\n          switch(dimension) {\n            case '\u81ea\u6211\u60c5\u7dd2\u8a8d\u77e5':\n              suggestions.push({\n                title: '\u63d0\u5347\u81ea\u6211\u89ba\u5bdf',\n                content: '\u5efa\u8b70\u6bcf\u5929\u82b15\u5206\u9418\u9032\u884c\u60c5\u7dd2\u6aa2\u8996\uff0c\u554f\u81ea\u5df1\u300c\u73fe\u5728\u611f\u53d7\u5982\u4f55\uff1f\u300d\u300c\u70ba\u4ec0\u9ebc\u6703\u6709\u9019\u7a2e\u611f\u53d7\uff1f\u300d',\n                icon: 'heart-pulse',\n                color: 'info'\n              });\n              break;\n            case '\u60c5\u7dd2\u63a7\u5236':\n              suggestions.push({\n                title: '\u5b78\u7fd2\u8abf\u7bc0\u6280\u5de7',\n                content: '\u5617\u8a66\u6df1\u547c\u5438\u3001\u6578\u5230\u5341\u3001\u66ab\u6642\u96e2\u958b\u73fe\u5834\u7b49\u6280\u5de7\u3002\u7576\u60c5\u7dd2\u6fc0\u52d5\u6642\uff0c\u7d66\u81ea\u5df1\u6642\u9593\u51b7\u975c\u601d\u8003\u3002',\n                icon: 'pause-circle',\n                color: 'primary'\n              });\n              break;\n            case '\u81ea\u6211\u6fc0\u52f5':\n              suggestions.push({\n                title: '\u57f9\u990a\u5167\u5728\u52d5\u529b',\n                content: '\u8a2d\u5b9a\u5c0f\u76ee\u6a19\u4e26\u6176\u795d\u9054\u6210\uff0c\u5efa\u7acb\u6b63\u5411\u7684\u81ea\u6211\u5c0d\u8a71\u6a21\u5f0f\uff0c\u5b78\u6703\u5f9e\u5931\u6557\u4e2d\u627e\u5230\u5b78\u7fd2\u6a5f\u6703\u3002',\n                icon: 'arrow-up-circle',\n                color: 'success'\n              });\n              break;\n            case '\u4ed6\u4eba\u60c5\u7dd2\u8a8d\u77e5':\n              suggestions.push({\n                title: '\u7df4\u7fd2\u540c\u7406\u5fc3',\n                content: '\u591a\u89c0\u5bdf\u4ed6\u4eba\u7684\u8868\u60c5\u3001\u8a9e\u8abf\u8b8a\u5316\uff0c\u5617\u8a66\u7406\u89e3\u4ed6\u4eba\u7684\u611f\u53d7\uff0c\u7df4\u7fd2\u4e3b\u52d5\u8a62\u554f\u300c\u4f60\u611f\u89ba\u5982\u4f55\uff1f\u300d',\n                icon: 'eye',\n                color: 'secondary'\n              });\n              break;\n            case '\u4eba\u969b\u95dc\u4fc2\u7ba1\u7406':\n              suggestions.push({\n                title: '\u6539\u5584\u6e9d\u901a\u6280\u5de7',\n                content: '\u7df4\u7fd2\u7a4d\u6975\u50be\u807d\uff0c\u5b78\u6703\u8868\u9054\u4e0d\u540c\u610f\u898b\u800c\u4e0d\u50b7\u5bb3\u95dc\u4fc2\uff0c\u57f9\u990a\u5408\u4f5c\u800c\u975e\u7af6\u722d\u7684\u5fc3\u614b\u3002',\n                icon: 'people',\n                color: 'danger'\n              });\n              break;\n          }\n        }\n      });\n\n      return suggestions.slice(0, 3); \/\/ \u6700\u591a\u986f\u793a3\u500b\u5efa\u8b70\n    }\n\n    renderRadarChart() {\n      \/\/ \u92b7\u6bc0\u73fe\u6709\u5716\u8868\n      if (this.radarChart) {\n        this.radarChart.destroy();\n      }\n\n      const ctx = this.elements.radarCanvas.getContext('2d');\n      const labels = Object.keys(this.dimensionScores);\n      const data = Object.values(this.dimensionScores);\n\n      this.radarChart = new Chart(ctx, {\n        type: 'radar',\n        data: {\n          labels: labels,\n          datasets: [{\n            label: '\u60a8\u7684\u5f97\u5206',\n            data: data,\n            fill: true,\n            backgroundColor: 'rgba(13, 110, 253, 0.2)',\n            borderColor: 'rgba(13, 110, 253, 1)',\n            pointBackgroundColor: 'rgba(13, 110, 253, 1)',\n            pointBorderColor: '#fff',\n            pointHoverBackgroundColor: '#fff',\n            pointHoverBorderColor: 'rgba(13, 110, 253, 1)',\n            borderWidth: 2,\n            pointRadius: 6\n          }]\n        },\n        options: {\n          responsive: true,\n          maintainAspectRatio: true,\n          plugins: {\n            legend: {\n              display: false\n            }\n          },\n          scales: {\n            r: {\n              beginAtZero: true,\n              max: 20,\n              ticks: {\n                stepSize: 4,\n                font: {\n                  size: 14\n                }\n              },\n              pointLabels: {\n                font: {\n                  size: 16\n                }\n              }\n            }\n          }\n        }\n      });\n    }\n\n    renderScoreDistribution() {\n      \/\/ \u92b7\u6bc0\u73fe\u6709\u5716\u8868\n      if (this.distributionChart) {\n        this.distributionChart.destroy();\n      }\n\n      const ctx = this.elements.distributionCanvas.getContext('2d');\n      \n      \/\/ \u6309\u7167\u5206\u6578\u5f9e\u9ad8\u5230\u4f4e\u6392\u5e8f\u5340\u9593\uff0c\u9019\u6a23\u5716\u8868\u4e2d\u5f9e\u5de6\u5230\u53f3\u7684\u9806\u5e8f\u5c31\u662f\u5f9e\u9ad8\u5206\u5230\u4f4e\u5206\n      const sortedRanges = [...scoreRanges].sort((a, b) => b.min - a.min);\n      \n      \/\/ \u8a08\u7b97\u7d2f\u8a08\u4f4d\u7f6e\uff0c\u7528\u65bc\u6b63\u78ba\u8a2d\u5b9aX\u8ef8\u523b\u5ea6\n      let cumulativeWidth = 0;\n      const rangePositions = sortedRanges.map(range => {\n        const startPos = cumulativeWidth;\n        const width = range.max - range.min + 1;\n        cumulativeWidth += width;\n        return {\n          ...range,\n          startPos,\n          endPos: cumulativeWidth,\n          width\n        };\n      });\n      const totalWidth = cumulativeWidth;\n      \n      this.distributionChart = new Chart(ctx, {\n        type: 'bar',\n        data: {\n          labels: ['\u8a55\u5206\u5206\u5e03'],\n          datasets: sortedRanges.map((range, index) => ({\n            label: `${range.label} (${range.min}-${range.max}\u5206)`,\n            data: [range.max - range.min + 1], \/\/ \u5340\u9593\u8de8\u5ea6\n            backgroundColor: range.color,\n            borderColor: range.color,\n            borderWidth: 1,\n            barThickness: 80\n          }))\n        },\n        options: {\n          indexAxis: 'y',\n          responsive: true,\n          maintainAspectRatio: false,\n          plugins: {\n            legend: {\n              display: true,\n              position: 'bottom',\n              labels: {\n                usePointStyle: true,\n                padding: 15,\n                font: { size: 12 },\n                boxWidth: 15,\n                boxHeight: 15\n              }\n            },\n            tooltip: {\n              callbacks: {\n                title: () => '\u8a55\u5206\u5340\u9593',\n                label: (context) => {\n                  const range = sortedRanges[context.datasetIndex];\n                  return `${range.label}: ${range.min}-${range.max}\u5206`;\n                }\n              }\n            }\n          },\n          scales: {\n            x: {\n              stacked: true,\n              display: true,\n              min: 0,\n              max: totalWidth,\n              ticks: {\n                stepSize: totalWidth \/ 10,\n                callback: (value) => {\n                  \/\/ \u6839\u64da\u5728\u5716\u8868\u4e2d\u7684\u4f4d\u7f6e\u53cd\u63a8\u5c0d\u61c9\u7684\u5206\u6578\n                  let currentPos = 0;\n                  for (let i = 0; i < rangePositions.length; i++) {\n                    const range = rangePositions[i];\n                    if (value >= range.startPos && value <= range.endPos) {\n                      \/\/ \u5728\u9019\u500b\u5340\u9593\u5167\uff0c\u8a08\u7b97\u5c0d\u61c9\u7684\u5206\u6578\n                      const positionInRange = (value - range.startPos) \/ range.width;\n                      const score = Math.round(range.max - (range.max - range.min) * positionInRange);\n                      return score + '\u5206';\n                    }\n                  }\n                  \/\/ \u5982\u679c\u4e0d\u5728\u4efb\u4f55\u5340\u9593\u5167\uff0c\u8fd4\u56de\u908a\u754c\u503c\n                  if (value <= 0) return '100\u5206';\n                  if (value >= totalWidth) return '0\u5206';\n                  return '';\n                },\n                font: { size: 11 }\n              },\n              grid: {\n                display: true,\n                color: 'rgba(0,0,0,0.1)'\n              },\n              title: {\n                display: true,\n                text: '\u5206\u6578\u7bc4\u570d (100-0\u5206)',\n                font: { size: 12, weight: 'bold' }\n              }\n            },\n            y: {\n              stacked: true,\n              display: true,\n              ticks: {\n                font: { size: 12 }\n              }\n            }\n          },\n          layout: {\n            padding: {\n              top: 50,\n              bottom: 20,\n              left: 20,\n              right: 20\n            }\n          }\n        },\n        plugins: [{\n          afterDraw: (chart) => {\n            const ctx = chart.ctx;\n            const chartArea = chart.chartArea;\n            \n            \/\/ \u8a08\u7b97\u4f7f\u7528\u8005\u5206\u6578\u5728\u5716\u8868\u4e2d\u7684\u6b63\u78ba\u4f4d\u7f6e\n            let userX = null;\n            \n            \/\/ \u6309\u7167\u5716\u8868\u5448\u73fe\u9806\u5e8f\uff08sortedRanges\uff09\u67e5\u627e\u4f7f\u7528\u8005\u5206\u6578\u6240\u5728\u5340\u9593\n            for (let i = 0; i < rangePositions.length; i++) {\n              const range = rangePositions[i];\n              \n              if (this.totalScore >= range.min && this.totalScore <= range.max) {\n                \/\/ \u4f7f\u7528\u8005\u5206\u6578\u5728\u9019\u500b\u5340\u9593\u5167\n                \/\/ \u8a08\u7b97\u5728\u76ee\u524d\u5340\u9593\u5167\u7684\u76f8\u5c0d\u4f4d\u7f6e (0-1)\n                const positionInRange = (this.totalScore - range.min) \/ (range.max - range.min);\n                \n                \/\/ \u8a08\u7b97\u5728\u6574\u500b\u5716\u8868\u4e2d\u7684\u7d55\u5c0d\u4f4d\u7f6e\n                const absolutePosition = (range.startPos + range.width * positionInRange) \/ totalWidth;\n                \n                \/\/ \u8f49\u63db\u70ba\u5716\u8868\u5ea7\u6a19\n                userX = chartArea.left + absolutePosition * chartArea.width;\n                break;\n              }\n            }\n            \n            \/\/ \u5982\u679c\u6c92\u6709\u627e\u5230\u5339\u914d\u7684\u5340\u9593\uff0c\u4f7f\u7528\u908a\u754c\u503c\n            if (userX === null) {\n              if (this.totalScore > 100) {\n                userX = chartArea.left; \/\/ 100\u5206\u4ee5\u4e0a\u5728\u6700\u5de6\u908a\n              } else if (this.totalScore < 0) {\n                userX = chartArea.right; \/\/ 0\u5206\u4ee5\u4e0b\u5728\u6700\u53f3\u908a\n              }\n            }\n            \n            if (userX !== null) {\n              const barY = chartArea.top + chartArea.height \/ 2;\n              \n              ctx.save();\n              \n              \/\/ \u7e6a\u88fd\u5782\u76f4\u6307\u793a\u7dda\n              ctx.strokeStyle = '#dc3545';\n              ctx.lineWidth = 3;\n              ctx.setLineDash([6, 6]);\n              ctx.beginPath();\n              ctx.moveTo(userX, chartArea.top - 15);\n              ctx.lineTo(userX, chartArea.bottom + 15);\n              ctx.stroke();\n              ctx.setLineDash([]);\n              \n              \/\/ \u7e6a\u88fd\u4f7f\u7528\u8005\u4f4d\u7f6e\u6a19\u8a18\u5713\u9ede\n              ctx.fillStyle = '#dc3545';\n              ctx.strokeStyle = '#ffffff';\n              ctx.lineWidth = 4;\n              ctx.beginPath();\n              ctx.arc(userX, barY, 14, 0, 2 * Math.PI);\n              ctx.fill();\n              ctx.stroke();\n              \n              \/\/ \u5728\u5713\u9ede\u5167\u90e8\u7e6a\u88fd\u5c0f\u767d\u9ede\n              ctx.fillStyle = '#ffffff';\n              ctx.beginPath();\n              ctx.arc(userX, barY, 5, 0, 2 * Math.PI);\n              ctx.fill();\n              \n              \/\/ \u7e6a\u88fd\u5206\u6578\u6a19\u7c64\n              const labelText = `\u60a8\u7684\u5f97\u5206: ${this.totalScore}\u5206`;\n              ctx.font = 'bold 13px Arial';\n              ctx.textAlign = 'center';\n              const textMetrics = ctx.measureText(labelText);\n              const textWidth = textMetrics.width;\n              \n              \/\/ \u667a\u6167\u8abf\u6574\u6a19\u7c64\u4f4d\u7f6e\u907f\u514d\u8d85\u51fa\u908a\u754c\n              let labelX = userX;\n              if (labelX - textWidth\/2 - 10 < chartArea.left) {\n                labelX = chartArea.left + textWidth\/2 + 10;\n              } else if (labelX + textWidth\/2 + 10 > chartArea.right) {\n                labelX = chartArea.right - textWidth\/2 - 10;\n              }\n              \n              const labelY = chartArea.top - 25;\n              \n              \/\/ \u7e6a\u88fd\u6a19\u7c64\u80cc\u666f\u5713\u89d2\u77e9\u5f62\n              const bgPadding = 10;\n              const bgHeight = 22;\n              ctx.fillStyle = 'rgba(220, 53, 69, 0.95)';\n              ctx.beginPath();\n              ctx.roundRect(labelX - textWidth\/2 - bgPadding, labelY - bgHeight\/2, textWidth + bgPadding * 2, bgHeight, 11);\n              ctx.fill();\n              \n              \/\/ \u7e6a\u88fd\u6a19\u7c64\u6587\u5b57\n              ctx.fillStyle = '#ffffff';\n              ctx.fillText(labelText, labelX, labelY + 3);\n              \n              ctx.restore();\n            }\n          }\n        }]\n      });\n    }\n\n    restartQuiz() {\n      this.currentQuestion = 0;\n      this.answers = [];\n      this.dimensionScores = {};\n      this.totalScore = 0;\n      \n      if (this.radarChart) {\n        this.radarChart.destroy();\n        this.radarChart = null;\n      }\n      \n      if (this.distributionChart) {\n        this.distributionChart.destroy();\n        this.distributionChart = null;\n      }\n      \n      this.showSection('intro9');\n      this.scrollToTop();\n    }\n\n    showSection(sectionId) {\n      \/\/ \u96b1\u85cf\u6240\u6709\u5340\u6bb5\n      [this.elements.introSection, this.elements.quizSection, this.elements.resultSection].forEach(section => {\n        if (section) section.style.display = 'none';\n      });\n      \n      \/\/ \u986f\u793a\u76ee\u6a19\u5340\u6bb5\n      const targetSection = document.querySelector(`[data-page=\"${sectionId}\"]`);\n      if (targetSection) {\n        targetSection.style.display = 'block';\n      }\n    }\n\n    scrollToTop() {\n      window.scrollTo({\n        top: 0,\n        behavior: 'smooth'\n      });\n    }\n  }\n\n  \/\/ \u521d\u59cb\u5316\u61c9\u7528\u7a0b\u5f0f\n  document.addEventListener('DOMContentLoaded', () => {\n    new EQQuiz();\n  });\n\n})();\n<\/script>\n\n\n\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>\u672c\u6d4b\u8bd5\u662f\u4e00\u7ec4\u7efc\u5408\u6027\u6d4b\u8bd5\u60c5\u5546\u7684\u95ee\u7b54\u9898\uff0c\u8fd9\u91cc\u7684\u56de\u7b54\u6ca1\u6709\u6b63\u786e\u4e0e\u9519\u8bef\u4e4b\u5206\uff0c\u8bf7\u6839\u636e\u4f60\u7684\u5b9e\u9645\u60c5\u51b5\u4e0e\u771f\u5b9e\u60f3\u6cd5\uff0c\u7528\u6700\u5feb\u7684\u65f6\u95f4\u5728\u4e09\u79cd\u9009\u9879\u4e2d\u505a\u51fa\u9009\u62e9\uff1a\u300c\u603b\u662f\u300d\u3001\u300c\u6709\u65f6\u300d\u6216\u300c\u4ece\u4e0d\u300d\u3002<\/p>","protected":false},"author":19,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"normal-width-container","site-content-style":"unboxed","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":"disabled","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":"","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":[167,175],"tags":[227],"class_list":["post-2880","post","type-post","status-publish","format-standard","hentry","category-personality","category-relationships","tag-emotional-intelligence"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2880","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=2880"}],"version-history":[{"count":4,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2880\/revisions"}],"predecessor-version":[{"id":10230,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/2880\/revisions\/10230"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=2880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=2880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=2880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}