{"id":9258,"date":"2025-05-15T18:13:18","date_gmt":"2025-05-15T10:13:18","guid":{"rendered":"https:\/\/xinliceyan.org\/?p=9258"},"modified":"2025-05-15T18:13:20","modified_gmt":"2025-05-15T10:13:20","slug":"interpersonal-charm","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/interpersonal-charm","title":{"rendered":"\u4eba\u9645\u9b45\u529b\u6307\u6570\u7ebf\u4e0a\u514d\u8d39\u6d4b\u9a8c\uff0825\u9898\uff09"},"content":{"rendered":"<!-- \u4eba\u969b\u9b45\u529b\u6307\u6578\u6e2c\u9a57 WordPress\u5d4c\u5165\u7248 -->\n<div class=\"charm-test-container\" id=\"charmTestContainer\">\n  <!-- \u5f15\u5c0e\u9801 -->\n  <section class=\"charm-test-intro\" id=\"charmTestIntro\">\n    <h2>\u4eba\u9645\u9b45\u529b\u6307\u6570\u6d4b\u9a8c<\/h2>\n    <p>\u4e86\u89e3\u81ea\u5df1\u7684\u4eba\u9645\u9b45\u529b\u7279\u8d28\uff0c\u53d1\u73b0\u60a8\u5438\u5f15\u4ed6\u4eba\u7684\u72ec\u7279\u4f18\u52bf\uff01<\/p>\n    \n    <div class=\"charm-test-intro-text\">\n      \u4e00\u4e2a\u4eba\u7684\u9b45\u529b\u4e0e\u5176\u60c5\u611f\u80fd\u529b\u4e0e\u793e\u4ea4\u80fd\u529b\u6709\u5f88\u5927\u7684\u5173\u7cfb\u3002\u5f88\u591a\u4eba\u90fd\u8ba4\u4e3a\u9b45\u529b\u662f\u4e0a\u5929\u7ed9\u4e00\u5c0f\u90e8\u5206\u5e78\u8fd0\u7684\u4eba\u7684\u7279\u6b8a\u9988\u8d60\u3002\u7136\u800c\uff0c\u5173\u4e8e\u9b45\u529b\u7684\u8c03\u67e5\u7814\u7a76\u8868\u660e\uff0c\u4e00\u4e2a\u4eba\u7684\u9b45\u529b\u662f\u53ef\u4ee5\u88ab\u6d4b\u91cf\u7684\uff0c\u4e14\u6709\u4e00\u4e9b\u57fa\u672c\u56e0\u7d20\u662f\uff0c\u8fd9\u4e9b\u56e0\u7d20\u88ab\u7edf\u79f0\u4e3a\u201d\u9b45\u529b\u5546\u6570\u201d\u3002\u60f3\u77e5\u9053\u4f60\u5728\u4e0e\u4eba\u4ea4\u5f80\u65f6\u80fd\u591f\u5c55\u73b0\u51fa\u81ea\u5df1\u7684\u591a\u5c11\u9b45\u529b\u5417\uff1f\u6d4b\u6d4b\u770b\u5427\uff01\n    <\/div>\n    \n    <div class=\"charm-test-features\">\n      <div class=\"charm-test-feature\">\n        <div class=\"charm-test-feature-icon\">\ud83d\udd0d<\/div>\n        <h3>\u6df1\u5165\u5206\u6790<\/h3>\n        <p>\u63ed\u793a\u60a8\u7684\u793e\u4ea4\u9b45\u529b\u4e0e\u8868\u8fbe\u80fd\u529b<\/p>\n      <\/div>\n      <div class=\"charm-test-feature\">\n        <div class=\"charm-test-feature-icon\">\ud83d\udcca<\/div>\n        <h3>\u79d1\u5b66\u6d4b\u8bc4<\/h3>\n        <p>\u57fa\u4e8e\u5fc3\u7406\u5b66\u7814\u7a76\u8bbe\u8ba1<\/p>\n      <\/div>\n      <div class=\"charm-test-feature\">\n        <div class=\"charm-test-feature-icon\">\ud83d\ude80<\/div>\n        <h3>\u6210\u957f\u6307\u5f15<\/h3>\n        <p>\u63d0\u4f9b\u4e2a\u6027\u5316\u63d0\u5347\u5efa\u8bae<\/p>\n      <\/div>\n    <\/div>\n    \n    <button class=\"charm-test-btn charm-test-start-btn\" id=\"charmTestStartBtn\">\u5f00\u59cb\u6d4b\u9a8c<\/button>\n  <\/section>\n\n  <!-- \u6e2c\u9a57\u9801 -->\n  <section class=\"charm-test-questions\" id=\"charmTestQuestions\" style=\"display:none;\">\n    <h2>\u4eba\u9645\u9b45\u529b\u6307\u6570\u6d4b\u9a8c<\/h2>\n    \n    <div class=\"charm-test-progress\">\n      <div class=\"charm-test-progress-inner\" id=\"charmTestProgressBar\"><\/div>\n    <\/div>\n    <div class=\"charm-test-progress-text\" id=\"charmTestProgressText\">\u95ee\u98981\/10<\/div>\n    \n    <div class=\"charm-test-card\">\n      <!-- \u554f\u984c\u5c07\u7531 JS \u52d5\u614b\u751f\u6210 -->\n    <\/div>\n    \n    <div class=\"charm-test-nav\">\n      <button class=\"charm-test-btn charm-test-prev-btn\" id=\"charmTestPrevBtn\" style=\"display:none;\">\u4e0a\u4e00\u9898<\/button>\n    <\/div>\n  <\/section>\n\n  <!-- \u7d50\u679c\u9801 -->\n  <section class=\"charm-test-result\" id=\"charmTestResult\" style=\"display:none;\">\n    <h2>\u60a8\u7684\u4eba\u9645\u9b45\u529b\u6307\u6570\u7ed3\u679c<\/h2>\n    \n    <div class=\"charm-test-card\">\n      <div class=\"charm-test-result-score\" id=\"charmTestTotalScore\"><\/div>\n      <p id=\"charmTestResultSummary\"><\/p>\n      \n      <div class=\"charm-test-chart-container\">\n        <canvas id=\"charmTestRadarChart\"><\/canvas>\n      <\/div>\n      \n      <div class=\"charm-test-dimensions\" id=\"charmTestDimensions\">\n        <!-- \u7dad\u5ea6\u7d50\u679c\u5c07\u7531 JS \u52d5\u614b\u751f\u6210 -->\n      <\/div>\n    <\/div>\n    \n    <button class=\"charm-test-btn charm-test-restart-btn\" id=\"charmTestRestartBtn\">\u91cd\u65b0\u6d4b\u9a8c<\/button>\n  <\/section>\n<\/div>\n\n<style>\n  \/* \u5b9a\u7fa9\u5168\u5c40CSS\u8b8a\u91cf *\/\n  :root {\n    --primary-color: #4f6df5;\n    --primary-light: #7a90f8;\n    --primary-dark: #3b51d2;\n    --accent-color: #f55e4f;\n    --text-color: #333333;\n    --text-light: #666666;\n    --background-color: #ffffff;\n    --background-light: #f8f9fa;\n    --background-dark: #e9ecef;\n    --border-color: #dee2e6;\n    --success-color: #28a745;\n    --box-shadow: 0 4px 12px rgba(0,0,0,0.08);\n    --transition-speed: 0.3s;\n    --border-radius: 8px;\n    --font-family: 'Microsoft JhengHei', 'PingFang TC', 'Heiti TC', 'Apple LiGothic', sans-serif;\n  }\n\n  \/* \u91cd\u8a2d\u6a23\u5f0f *\/\n  .charm-test-container *, .charm-test-container *::before, .charm-test-container *::after {\n    box-sizing: border-box;\n    margin: 0;\n    padding: 0;\n  }\n\n  \/* \u9632\u6b62\u8207 WordPress \u885d\u7a81\u7684\u547d\u540d\u7a7a\u9593\u524d\u7db4 *\/\n  .charm-test-container * {\n    font-family: var(--font-family);\n  }\n\n  .charm-test-container {\n    max-width: 800px;\n    margin: 2rem auto;\n    padding: 0 1rem;\n    color: var(--text-color);\n    line-height: 1.6;\n  }\n\n  \/* \u6a19\u984c\u6a23\u5f0f *\/\n  .charm-test-container h2 {\n    font-size: 32px;\n    color: var(--primary-dark);\n    text-align: center;\n    margin-bottom: 1.5rem;\n    font-weight: 700;\n  }\n\n  .charm-test-container h3 {\n    font-size: 22px;\n    font-weight: 600;\n    margin-bottom: 1rem;\n  }\n\n  \/* \u6bb5\u843d\u6a23\u5f0f *\/\n  .charm-test-container p {\n    font-size: 18px;\n    margin-bottom: 1rem;\n    color: var(--text-color);\n    line-height: 1.7;\n  }\n\n  \/* \u6309\u9215\u6a23\u5f0f *\/\n  .charm-test-btn {\n    display: inline-block;\n    padding: 0.8rem 2rem;\n    min-width: 180px;\n    min-height: 50px;\n    font-size: 18px;\n    font-weight: 600;\n    text-align: center;\n    text-decoration: none;\n    cursor: pointer;\n    border: none;\n    border-radius: var(--border-radius);\n    background: linear-gradient(to right, var(--primary-color), var(--primary-light));\n    color: white;\n    box-shadow: var(--box-shadow);\n    transition: all var(--transition-speed);\n  }\n\n  .charm-test-btn:hover, .charm-test-btn:focus {\n    background: linear-gradient(to right, var(--primary-dark), var(--primary-color));\n    box-shadow: 0 6px 16px rgba(0,0,0,0.12);\n    transform: translateY(-3px);\n  }\n\n  .charm-test-btn:active {\n    transform: translateY(0);\n    box-shadow: var(--box-shadow);\n  }\n\n  \/* \u5361\u7247\u6a23\u5f0f *\/\n  .charm-test-card {\n    background-color: var(--background-color);\n    border-radius: var(--border-radius);\n    box-shadow: var(--box-shadow);\n    padding: 2rem;\n    margin-bottom: 2rem;\n  }\n\n  \/* \u5f15\u5c0e\u9801\u6a23\u5f0f *\/\n  .charm-test-intro {\n    text-align: center;\n    background: linear-gradient(135deg, #f5f9ff 0%, #ecf5ff 100%);\n    border-radius: var(--border-radius);\n    padding: 2rem 1.5rem;\n    box-shadow: var(--box-shadow);\n  }\n  \n  .charm-test-intro-text {\n    font-size: 18px;\n    line-height: 1.8;\n    text-align: left;\n    color: var(--text-color);\n    margin-bottom: 2rem;\n    background-color: rgba(255, 255, 255, 0.7);\n    padding: 1.5rem;\n    border-radius: var(--border-radius);\n    border-left: 4px solid var(--primary-color);\n    box-shadow: 0 2px 8px rgba(0,0,0,0.05);\n  }\n\n  .charm-test-intro .charm-test-features {\n    display: flex;\n    justify-content: space-between;\n    margin: 2rem 0;\n    flex-direction: row;\n    flex-wrap: nowrap;\n    gap: 1rem;\n  }\n\n  .charm-test-feature {\n    flex: 1;\n    max-width: 180px;\n    margin-bottom: 1.5rem;\n  }\n\n  .charm-test-feature-icon {\n    width: 70px;\n    height: 70px;\n    background: linear-gradient(135deg, var(--primary-light) 0%, var(--primary-color) 100%);\n    border-radius: 50%;\n    margin: 0 auto 1rem;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: white;\n    font-size: 28px;\n    box-shadow: 0 8px 16px rgba(79, 109, 245, 0.2);\n    transition: transform 0.3s ease;\n  }\n  \n  .charm-test-feature:hover .charm-test-feature-icon {\n    transform: translateY(-5px);\n  }\n\n  .charm-test-feature h3 {\n    font-size: 20px;\n    margin-bottom: 0.5rem;\n  }\n\n  .charm-test-start-btn {\n    margin-top: 2rem;\n  }\n\n  \/* \u6e2c\u9a57\u9801\u6a23\u5f0f *\/\n  .charm-test-question {\n    display: none;\n  }\n\n  .charm-test-question.active {\n    display: block;\n    animation: fadeIn 0.3s ease;\n  }\n\n  .charm-test-progress {\n    margin-bottom: 1.5rem;\n    background-color: var(--background-dark);\n    height: 8px;\n    border-radius: 4px;\n    overflow: hidden;\n  }\n\n  .charm-test-progress-inner {\n    height: 100%;\n    background: linear-gradient(to right, var(--primary-light), var(--primary-color));\n    transition: width 0.3s ease;\n  }\n\n  .charm-test-progress-text {\n    text-align: center;\n    font-size: 16px;\n    color: var(--text-light);\n    margin-bottom: 1.5rem;\n  }\n\n  .charm-test-options {\n    list-style: none;\n    padding: 0;\n    margin: 1.5rem 0;\n  }\n\n  .charm-test-option {\n    margin-bottom: 1rem;\n  }\n\n  .charm-test-option label {\n    display: block;\n    padding: 1rem 1.5rem;\n    background-color: var(--background-light);\n    border: 2px solid var(--border-color);\n    border-radius: var(--border-radius);\n    font-size: 18px;\n    cursor: pointer;\n    transition: all var(--transition-speed);\n    position: relative;\n  }\n\n  .charm-test-option input[type=\"radio\"] {\n    position: absolute;\n    opacity: 0;\n  }\n\n  .charm-test-option label:hover {\n    background-color: rgba(79, 109, 245, 0.05);\n    border-color: var(--primary-light);\n  }\n\n  .charm-test-option input[type=\"radio\"]:checked + label {\n    background-color: rgba(79, 109, 245, 0.1);\n    border-color: var(--primary-color);\n    color: var(--primary-dark);\n    font-weight: 500;\n  }\n\n  .charm-test-nav {\n    display: flex;\n    justify-content: center;\n    margin-top: 2rem;\n  }\n\n  .charm-test-prev-btn {\n    background: var(--background-light);\n    color: var(--text-color);\n    border: 1px solid var(--border-color);\n  }\n\n  .charm-test-prev-btn:hover {\n    background: var(--background-dark);\n    color: var(--text-color);\n  }\n\n  \/* \u7d50\u679c\u9801\u6a23\u5f0f *\/\n  .charm-test-result {\n    display: none;\n  }\n\n  .charm-test-result.active {\n    display: block;\n    animation: fadeIn 0.5s ease;\n  }\n\n  .charm-test-result .charm-test-card {\n    background: linear-gradient(135deg, #f9f9ff 0%, #f0f4ff 100%);\n    border-top: 5px solid var(--primary-color);\n  }\n\n  .charm-test-result-score {\n    font-size: 32px;\n    font-weight: bold;\n    text-align: center;\n    margin: 1.5rem 0;\n    color: var(--primary-dark);\n    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);\n    padding: 1rem;\n    background: linear-gradient(135deg, rgba(79, 109, 245, 0.1) 0%, rgba(79, 109, 245, 0.05) 100%);\n    border-radius: var(--border-radius);\n  }\n\n  .charm-test-chart-container {\n    margin: 2.5rem auto;\n    max-width: 550px;\n    height: 320px;\n    padding: 1rem;\n    background-color: rgba(255, 255, 255, 0.7);\n    border-radius: var(--border-radius);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.05);\n  }\n\n  .charm-test-dimensions {\n    margin-top: 2.5rem;\n    background-color: white;\n    border-radius: var(--border-radius);\n    padding: 1.5rem;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.05);\n  }\n\n  .charm-test-dimension {\n    margin-bottom: 2rem;\n    padding-bottom: 1.5rem;\n    border-bottom: 1px solid rgba(79, 109, 245, 0.2);\n    position: relative;\n  }\n\n  .charm-test-dimension:last-child {\n    border-bottom: none;\n    margin-bottom: 0;\n    padding-bottom: 0;\n  }\n\n  .charm-test-dimension h3 {\n    color: var(--primary-dark);\n    margin-bottom: 0.8rem;\n    display: flex;\n    align-items: center;\n  }\n\n  .charm-test-dimension h3:before {\n    content: \"\";\n    display: inline-block;\n    width: 8px;\n    height: 22px;\n    background-color: var(--primary-color);\n    margin-right: 10px;\n    border-radius: 4px;\n  }\n\n  .charm-test-dimension-score {\n    font-size: 22px;\n    font-weight: bold;\n    margin-bottom: 0.8rem;\n    color: var(--primary-color);\n    display: inline-block;\n    padding: 0.3rem 1rem;\n    background-color: rgba(79, 109, 245, 0.1);\n    border-radius: 30px;\n  }\n\n  .charm-test-restart-btn {\n    display: block;\n    width: 220px;\n    margin: 2.5rem auto 1rem;\n    background: linear-gradient(135deg, var(--primary-color), var(--primary-dark));\n    transform-origin: center;\n    transition: all 0.3s ease;\n  }\n  \n  .charm-test-restart-btn:hover {\n    transform: scale(1.05);\n    box-shadow: 0 8px 20px rgba(79, 109, 245, 0.25);\n  }\n\n  \/* \u52d5\u756b\u6548\u679c *\/\n  @keyframes fadeIn {\n    from { opacity: 0; transform: translateY(10px); }\n    to { opacity: 1; transform: translateY(0); }\n  }\n\n  \/* \u6dfb\u52a0\u7dad\u5ea6\u984f\u8272\u6a23\u5f0f *\/\n  .charm-test-dimension-high .charm-test-dimension-score {\n    background-color: rgba(40, 167, 69, 0.1);\n    color: #28a745;\n  }\n  \n  .charm-test-dimension-medium .charm-test-dimension-score {\n    background-color: rgba(255, 193, 7, 0.1);\n    color: #e0a800;\n  }\n  \n  .charm-test-dimension-low .charm-test-dimension-score {\n    background-color: rgba(220, 53, 69, 0.1);\n    color: #dc3545;\n  }\n  \n  \/* \u52d5\u756b\u6548\u679c *\/\n  .charm-test-feature-icon, .charm-test-btn, .charm-test-result-score {\n    animation: pulse 2s infinite;\n  }\n  \n  @keyframes pulse {\n    0% {\n      box-shadow: 0 0 0 0 rgba(79, 109, 245, 0.4);\n    }\n    70% {\n      box-shadow: 0 0 0 10px rgba(79, 109, 245, 0);\n    }\n    100% {\n      box-shadow: 0 0 0 0 rgba(79, 109, 245, 0);\n    }\n  }\n\n  \/* \u97ff\u61c9\u5f0f\u6a23\u5f0f *\/\n  @media (max-width: 768px) {\n    .charm-test-container {\n      padding: 0 0.8rem;\n    }\n\n    .charm-test-card {\n      padding: 1.5rem;\n    }\n\n    .charm-test-container h2 {\n      font-size: 26px;\n    }\n\n    .charm-test-container h3 {\n      font-size: 20px;\n    }\n\n    .charm-test-container p {\n      font-size: 16px;\n    }\n\n    .charm-test-option label {\n      font-size: 16px;\n      padding: 0.8rem 1rem;\n    }\n\n    .charm-test-btn {\n      padding: 0.7rem 1.5rem;\n      font-size: 16px;\n      min-width: 160px;\n    }\n    \n    .charm-test-features {\n      flex-direction: column;\n      align-items: center;\n    }\n    \n    .charm-test-feature {\n      max-width: 100%;\n    }\n  }\n  \n  \/* \u7279\u5b9a\u91dd\u5c0d600px\u5bec\u5ea6\u7684WordPress\u9801\u9762 *\/\n  @media (max-width: 650px) {\n    .charm-test-container {\n      max-width: 100%;\n      padding: 0 0.5rem;\n    }\n    \n    .charm-test-intro {\n      padding: 1.5rem 1rem;\n    }\n    \n    .charm-test-feature {\n      padding: 0 0.5rem;\n    }\n  }\n<\/style>\n\n<!-- \u5f15\u5165 Chart.js -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n\n<script>\n  \/**\n   * \u4eba\u969b\u9b45\u529b\u6307\u6578\u6e2c\u9a57\u6a21\u7d44\n   * \u63a1\u7528\u7acb\u5373\u57f7\u884c\u51fd\u6578\u6a21\u5f0f\u907f\u514d\u5168\u5c40\u8b8a\u6578\u6c61\u67d3\n   *\/\n  (function() {\n    'use strict';\n    \n    \/\/ \u78ba\u4fddDOM\u5df2\u5b8c\u5168\u52a0\u8f09\n    if (document.readyState === 'loading') {\n      document.addEventListener('DOMContentLoaded', initModule);\n    } else {\n      initModule();\n    }\n    \n    function initModule() {\n      \/\/ \u547d\u540d\u7a7a\u9593\u524d\u7db4\uff0c\u907f\u514d\u8207\u5176\u4ed6\u63d2\u4ef6\u885d\u7a81\n      const NS = 'charm-test';\n    \n    \/\/ \u6e2c\u9a57\u554f\u984c\u548c\u9078\u9805\u6578\u64da\n    const questionsData = [\n      {\n        question: \"\u7576\u60a8\u9032\u5165\u4e00\u500b\u65b0\u7684\u793e\u4ea4\u5834\u5408\u6642\uff0c\u60a8\u6700\u5e38\u505a\u7684\u662f\uff1f\",\n        options: [\n          { text: \"\u4e3b\u52d5\u8207\u4ed6\u4eba\u6253\u62db\u547c\u4e26\u4ecb\u7d39\u81ea\u5df1\", score: { social: 5, emotional: 3, expression: 4, confidence: 5 } },\n          { text: \"\u7b49\u5f85\u4ed6\u4eba\u4f86\u8a8d\u8b58\u60a8\uff0c\u4fdd\u6301\u9069\u5ea6\u7684\u795e\u79d8\u611f\", score: { social: 3, emotional: 2, expression: 2, confidence: 3 } },\n          { text: \"\u627e\u5c0b\u60a8\u8a8d\u8b58\u7684\u4eba\uff0c\u8207\u4ed6\u5011\u5f85\u5728\u4e00\u8d77\", score: { social: 2, emotional: 4, expression: 3, confidence: 2 } },\n          { text: \"\u89c0\u5bdf\u74b0\u5883\u548c\u4eba\u7fa4\uff0c\u518d\u6c7a\u5b9a\u5982\u4f55\u884c\u52d5\", score: { social: 4, emotional: 3, expression: 2, confidence: 3 } }\n        ]\n      },\n      {\n        question: \"\u8207\u4eba\u4ea4\u8ac7\u6642\uff0c\u60a8\u901a\u5e38\u6703\uff1f\",\n        options: [\n          { text: \"\u4e3b\u5c0e\u8ac7\u8a71\uff0c\u5206\u4eab\u60a8\u7684\u89c0\u9ede\u548c\u7d93\u6b77\", score: { social: 4, emotional: 2, expression: 5, confidence: 5 } },\n          { text: \"\u5c08\u6ce8\u50be\u807d\uff0c\u63d0\u51fa\u6709\u6df1\u5ea6\u7684\u554f\u984c\", score: { social: 5, emotional: 5, expression: 3, confidence: 4 } },\n          { text: \"\u5e73\u8861\u50be\u807d\u8207\u8868\u9054\uff0c\u4e92\u52d5\u4ea4\u6d41\", score: { social: 5, emotional: 4, expression: 4, confidence: 4 } },\n          { text: \"\u6839\u64da\u5c0d\u65b9\u53cd\u61c9\u8abf\u6574\u8ac7\u8a71\u65b9\u5f0f\", score: { social: 4, emotional: 5, expression: 3, confidence: 3 } }\n        ]\n      },\n      {\n        question: \"\u7576\u60a8\u8207\u4eba\u6709\u4e0d\u540c\u610f\u898b\u6642\uff0c\u60a8\u6703\uff1f\",\n        options: [\n          { text: \"\u76f4\u63a5\u8868\u9054\u60a8\u7684\u89c0\u9ede\uff0c\u5805\u6301\u81ea\u5df1\u7684\u7acb\u5834\", score: { social: 3, emotional: 2, expression: 5, confidence: 5 } },\n          { text: \"\u79ae\u8c8c\u5730\u8868\u9054\u4e0d\u540c\u770b\u6cd5\uff0c\u5c0a\u91cd\u4ed6\u4eba\u89c0\u9ede\", score: { social: 5, emotional: 4, expression: 4, confidence: 4 } },\n          { text: \"\u907f\u514d\u885d\u7a81\uff0c\u50be\u5411\u65bc\u8a8d\u540c\u5c0d\u65b9\", score: { social: 2, emotional: 3, expression: 2, confidence: 1 } },\n          { text: \"\u4ee5\u5e7d\u9ed8\u65b9\u5f0f\u5316\u89e3\u5206\u6b67\uff0c\u8f49\u79fb\u8a71\u984c\", score: { social: 4, emotional: 3, expression: 4, confidence: 3 } }\n        ]\n      },\n      {\n        question: \"\u670b\u53cb\u9047\u5230\u56f0\u96e3\u5411\u60a8\u50be\u8a34\u6642\uff0c\u60a8\u901a\u5e38\u6703\uff1f\",\n        options: [\n          { text: \"\u63d0\u4f9b\u5177\u9ad4\u7684\u89e3\u6c7a\u65b9\u6848\u548c\u5efa\u8b70\", score: { social: 3, emotional: 3, expression: 4, confidence: 4 } },\n          { text: \"\u5c08\u6ce8\u50be\u807d\uff0c\u8868\u9054\u7406\u89e3\u548c\u652f\u6301\", score: { social: 4, emotional: 5, expression: 3, confidence: 3 } },\n          { text: \"\u5206\u4eab\u985e\u4f3c\u7684\u7d93\u6b77\uff0c\u8868\u9054\u540c\u7406\u5fc3\", score: { social: 4, emotional: 5, expression: 4, confidence: 3 } },\n          { text: \"\u5e6b\u52a9\u670b\u53cb\u5206\u6790\u60c5\u6cc1\uff0c\u4e00\u8d77\u601d\u8003\u5c0d\u7b56\", score: { social: 5, emotional: 4, expression: 4, confidence: 4 } }\n        ]\n      },\n      {\n        question: \"\u5728\u5718\u9ad4\u6d3b\u52d5\u4e2d\uff0c\u60a8\u901a\u5e38\u626e\u6f14\u4ec0\u9ebc\u89d2\u8272\uff1f\",\n        options: [\n          { text: \"\u9818\u5c0e\u8005\uff0c\u7d44\u7e54\u548c\u5f15\u5c0e\u6d3b\u52d5\u9032\u884c\", score: { social: 5, emotional: 3, expression: 5, confidence: 5 } },\n          { text: \"\u5354\u8abf\u8005\uff0c\u4fc3\u9032\u6e9d\u901a\u548c\u89e3\u6c7a\u885d\u7a81\", score: { social: 5, emotional: 5, expression: 4, confidence: 4 } },\n          { text: \"\u5275\u610f\u63d0\u4f9b\u8005\uff0c\u8ca2\u737b\u65b0\u60f3\u6cd5\", score: { social: 4, emotional: 3, expression: 5, confidence: 4 } },\n          { text: \"\u652f\u6301\u8005\uff0c\u914d\u5408\u5718\u968a\u9700\u8981\", score: { social: 3, emotional: 4, expression: 3, confidence: 3 } }\n        ]\n      },\n      {\n        question: \"\u7576\u60a8\u5728\u516c\u958b\u5834\u5408\u9700\u8981\u767c\u8a00\u6642\uff0c\u60a8\u7684\u611f\u53d7\u662f\uff1f\",\n        options: [\n          { text: \"\u5145\u6eff\u81ea\u4fe1\uff0c\u4eab\u53d7\u8868\u9054\u7684\u904e\u7a0b\", score: { social: 5, emotional: 3, expression: 5, confidence: 5 } },\n          { text: \"\u6709\u4e9b\u7dca\u5f35\uff0c\u4f46\u80fd\u5920\u61c9\u5c0d\", score: { social: 3, emotional: 3, expression: 3, confidence: 3 } },\n          { text: \"\u975e\u5e38\u7dca\u5f35\uff0c\u76e1\u91cf\u907f\u514d\u9019\u7a2e\u60c5\u6cc1\", score: { social: 1, emotional: 2, expression: 1, confidence: 1 } },\n          { text: \"\u8996\u60c5\u6cc1\u800c\u5b9a\uff0c\u719f\u6089\u7684\u4e3b\u984c\u6703\u66f4\u81ea\u5728\", score: { social: 3, emotional: 3, expression: 4, confidence: 3 } }\n        ]\n      },\n      {\n        question: \"\u5c0d\u65bc\u60a8\u500b\u4eba\u5f62\u8c61\u7684\u6253\u9020\uff0c\u60a8\u6700\u6ce8\u91cd\uff1f\",\n        options: [\n          { text: \"\u5c08\u696d\u8207\u53ef\u9760\u7684\u5f62\u8c61\", score: { social: 4, emotional: 3, expression: 4, confidence: 4 } },\n          { text: \"\u89aa\u5207\u53cb\u5584\u7684\u6c23\u8cea\", score: { social: 5, emotional: 5, expression: 3, confidence: 3 } },\n          { text: \"\u7368\u7279\u8207\u5275\u610f\u7684\u98a8\u683c\", score: { social: 4, emotional: 3, expression: 5, confidence: 5 } },\n          { text: \"\u9069\u61c9\u4e0d\u540c\u5834\u5408\u7684\u591a\u8b8a\u98a8\u683c\", score: { social: 5, emotional: 4, expression: 4, confidence: 4 } }\n        ]\n      },\n      {\n        question: \"\u7576\u60a8\u8207\u521d\u6b21\u898b\u9762\u7684\u4eba\u4ea4\u6d41\u6642\uff0c\u60a8\u6700\u64c5\u9577\uff1f\",\n        options: [\n          { text: \"\u627e\u5230\u5171\u540c\u8208\u8da3\u9032\u884c\u6df1\u5165\u4ea4\u6d41\", score: { social: 5, emotional: 4, expression: 4, confidence: 4 } },\n          { text: \"\u904b\u7528\u5e7d\u9ed8\u611f\u6d3b\u8e8d\u6c23\u6c1b\", score: { social: 5, emotional: 3, expression: 5, confidence: 5 } },\n          { text: \"\u63d0\u51fa\u6709\u8da3\u7684\u554f\u984c\u5f15\u5c0e\u8ac7\u8a71\", score: { social: 4, emotional: 4, expression: 4, confidence: 4 } },\n          { text: \"\u5206\u4eab\u6709\u50f9\u503c\u7684\u4fe1\u606f\u6216\u89c0\u9ede\", score: { social: 3, emotional: 3, expression: 5, confidence: 4 } }\n        ]\n      },\n      {\n        question: \"\u5728\u8655\u7406\u4eba\u969b\u885d\u7a81\u6642\uff0c\u60a8\u901a\u5e38\u6703\uff1f\",\n        options: [\n          { text: \"\u76f4\u63a5\u9762\u5c0d\u554f\u984c\uff0c\u5c0b\u6c42\u89e3\u6c7a\u65b9\u6848\", score: { social: 4, emotional: 4, expression: 4, confidence: 5 } },\n          { text: \"\u5c0b\u6c42\u96d9\u65b9\u90fd\u80fd\u63a5\u53d7\u7684\u59a5\u5354\", score: { social: 5, emotional: 4, expression: 3, confidence: 3 } },\n          { text: \"\u907f\u514d\u885d\u7a81\u5347\u7d1a\uff0c\u7b49\u5f85\u9069\u7576\u6642\u6a5f\u8655\u7406\", score: { social: 3, emotional: 3, expression: 2, confidence: 2 } },\n          { text: \"\u5c0b\u6c42\u7b2c\u4e09\u65b9\u5354\u52a9\u8abf\u89e3\", score: { social: 3, emotional: 3, expression: 3, confidence: 2 } }\n        ]\n      },\n      {\n        question: \"\u60a8\u5982\u4f55\u770b\u5f85\u81ea\u5df1\u5728\u793e\u4ea4\u5834\u5408\u4e2d\u7684\u8868\u73fe\uff1f\",\n        options: [\n          { text: \"\u975e\u5e38\u81ea\u4fe1\uff0c\u80fd\u5920\u5438\u5f15\u4ed6\u4eba\u6ce8\u610f\", score: { social: 5, emotional: 4, expression: 5, confidence: 5 } },\n          { text: \"\u9069\u5ea6\u53c3\u8207\uff0c\u4fdd\u6301\u8212\u9069\u7684\u4e92\u52d5\", score: { social: 4, emotional: 4, expression: 3, confidence: 3 } },\n          { text: \"\u6839\u64da\u74b0\u5883\u548c\u5c0d\u8c61\u8abf\u6574\u8868\u73fe\", score: { social: 4, emotional: 5, expression: 4, confidence: 4 } },\n          { text: \"\u504f\u597d\u5c0f\u5708\u5b50\u4ea4\u6d41\uff0c\u6df1\u5ea6\u52dd\u65bc\u5ee3\u5ea6\", score: { social: 3, emotional: 5, expression: 3, confidence: 2 } }\n        ]\n      }\n    ];\n    \n    \/\/ \u7d50\u679c\u89e3\u91cb\u6578\u64da\n    const resultInterpretations = [\n      {\n        range: [80, 100],\n        title: \"\u9b45\u529b\u9054\u4eba\",\n        description: \"\u60a8\u64c1\u6709\u6975\u9ad8\u7684\u4eba\u969b\u9b45\u529b\uff01\u60a8\u4e0d\u50c5\u5177\u5099\u512a\u79c0\u7684\u793e\u4ea4\u6280\u5de7\uff0c\u9084\u80fd\u6df1\u5165\u9023\u63a5\u4ed6\u4eba\u60c5\u611f\uff0c\u8868\u9054\u6e05\u6670\u6709\u529b\uff0c\u81ea\u4fe1\u800c\u4e0d\u81ea\u50b2\u3002\u60a8\u662f\u4eba\u7fa4\u4e2d\u7684\u7126\u9ede\uff0c\u80fd\u5920\u8f15\u9b06\u5efa\u7acb\u4eba\u969b\u95dc\u4fc2\u4e26\u7522\u751f\u7a4d\u6975\u5f71\u97ff\u3002\",\n        suggestions: \"\u6311\u6230\uff1a\u6301\u7e8c\u4fdd\u6301\u771f\u5be6\u6027\uff0c\u907f\u514d\u4eba\u969b\u95dc\u4fc2\u904e\u65bc\u8868\u9762\u5316\u3002\u5efa\u8b70\uff1a\u53ef\u4ee5\u5617\u8a66\u66f4\u6df1\u5165\u5730\u767c\u5c55\u5c11\u6578\u91cd\u8981\u95dc\u4fc2\uff0c\u5e73\u8861\u793e\u4ea4\u5ee3\u5ea6\u8207\u6df1\u5ea6\u3002\"\n      },\n      {\n        range: [60, 79],\n        title: \"\u793e\u4ea4\u9ad8\u624b\",\n        description: \"\u60a8\u5177\u6709\u5f88\u597d\u7684\u4eba\u969b\u9b45\u529b\uff01\u60a8\u5728\u793e\u4ea4\u5834\u5408\u8868\u73fe\u81ea\u7136\uff0c\u5584\u65bc\u8868\u9054\u81ea\u5df1\u7684\u60f3\u6cd5\uff0c\u80fd\u5920\u8207\u5404\u985e\u4eba\u58eb\u5efa\u7acb\u826f\u597d\u95dc\u4fc2\u3002\u60a8\u7684\u60c5\u611f\u9023\u7d50\u548c\u81ea\u4fe1\u5c55\u73fe\u65b9\u9762\u6709\u5f88\u5927\u512a\u52e2\u3002\",\n        suggestions: \"\u6311\u6230\uff1a\u67d0\u4e9b\u7279\u5b9a\u5834\u5408\u53ef\u80fd\u4ecd\u611f\u5230\u4e0d\u81ea\u5728\u3002\u5efa\u8b70\uff1a\u8b58\u5225\u60a8\u8f03\u5f31\u7684\u9b45\u529b\u7dad\u5ea6\uff0c\u6709\u91dd\u5c0d\u6027\u5730\u63d0\u5347\uff0c\u60a8\u7684\u4eba\u969b\u9b45\u529b\u5c07\u66f4\u52a0\u5168\u9762\u3002\"\n      },\n      {\n        range: [40, 59],\n        title: \"\u6f5b\u529b\u578b\u4eba\u7269\",\n        description: \"\u60a8\u64c1\u6709\u4e2d\u7b49\u6c34\u5e73\u7684\u4eba\u969b\u9b45\u529b\uff0c\u5728\u719f\u6089\u7684\u74b0\u5883\u4e2d\u80fd\u5920\u5c55\u73fe\u826f\u597d\u7684\u793e\u4ea4\u80fd\u529b\u548c\u81ea\u4fe1\u3002\u60a8\u6709\u826f\u597d\u7684\u57fa\u790e\uff0c\u4e26\u5177\u6709\u5f88\u5927\u7684\u63d0\u5347\u7a7a\u9593\u3002\",\n        suggestions: \"\u6311\u6230\uff1a\u53ef\u80fd\u5728\u964c\u751f\u74b0\u5883\u4e2d\u611f\u5230\u4e0d\u81ea\u5728\uff0c\u6216\u5728\u67d0\u4e9b\u9b45\u529b\u7dad\u5ea6\u4e0a\u8868\u73fe\u4e0d\u5747\u8861\u3002\u5efa\u8b70\uff1a\u5617\u8a66\u8d70\u51fa\u8212\u9069\u5340\uff0c\u5728\u66f4\u591a\u5834\u5408\u7df4\u7fd2\u793e\u4ea4\u4e92\u52d5\uff0c\u95dc\u6ce8\u5f31\u9805\u7dad\u5ea6\u7684\u63d0\u5347\u3002\"\n      },\n      {\n        range: [0, 39],\n        title: \"\u6210\u9577\u7a7a\u9593\",\n        description: \"\u60a8\u5728\u4eba\u969b\u9b45\u529b\u65b9\u9762\u6709\u8f03\u5927\u7684\u6210\u9577\u7a7a\u9593\u3002\u60a8\u53ef\u80fd\u5728\u67d0\u4e9b\u7279\u5b9a\u5834\u5408\u6216\u8207\u7279\u5b9a\u4eba\u7fa4\u4e92\u52d5\u6642\u80fd\u5c55\u73fe\u9b45\u529b\uff0c\u4f46\u6574\u9ad4\u4e0a\u53ef\u80fd\u611f\u5230\u793e\u4ea4\u58d3\u529b\u6216\u8868\u9054\u56f0\u96e3\u3002\",\n        suggestions: \"\u6311\u6230\uff1a\u793e\u4ea4\u7126\u616e\u6216\u81ea\u4fe1\u4e0d\u8db3\u53ef\u80fd\u9650\u5236\u4e86\u60a8\u7684\u9b45\u529b\u5c55\u73fe\u3002\u5efa\u8b70\uff1a\u5f9e\u5c0f\u76ee\u6a19\u958b\u59cb\uff0c\u5982\u6bcf\u5929\u8207\u4e00\u4f4d\u65b0\u670b\u53cb\u4ea4\u8ac7\uff0c\u53c3\u52a0\u6e9d\u901a\u6280\u5de7\u8ab2\u7a0b\uff0c\u6216\u5c0b\u6c42\u5c08\u696d\u6307\u5c0e\u3002\u96a8\u8457\u7d93\u9a57\u7a4d\u7d2f\uff0c\u60a8\u7684\u4eba\u969b\u9b45\u529b\u5c07\u986f\u8457\u63d0\u5347\u3002\"\n      }\n    ];\n    \n    \/\/ \u7dad\u5ea6\u89e3\u91cb\n    const dimensionInterpretations = {\n      social: {\n        title: \"\u793e\u4ea4\u9b45\u529b\",\n        high: \"\u60a8\u64c1\u6709\u6975\u4f73\u7684\u793e\u4ea4\u6280\u5de7\uff0c\u80fd\u5920\u8f15\u9b06\u5efa\u7acb\u4eba\u969b\u9023\u7d50\uff0c\u5728\u5404\u7a2e\u5834\u5408\u90fd\u80fd\u81ea\u5982\u61c9\u5c0d\u3002\u60a8\u5584\u65bc\u5275\u9020\u8f15\u9b06\u6109\u5feb\u7684\u6c1b\u570d\uff0c\u8b93\u4ed6\u4eba\u611f\u5230\u8212\u9069\u3002\",\n        medium: \"\u60a8\u5177\u6709\u4e0d\u932f\u7684\u793e\u4ea4\u80fd\u529b\uff0c\u80fd\u5920\u5728\u591a\u6578\u5834\u5408\u5efa\u7acb\u95dc\u4fc2\uff0c\u4f46\u53ef\u80fd\u5728\u67d0\u4e9b\u60c5\u6cc1\u4e0b\u611f\u5230\u4e0d\u90a3\u9ebc\u81ea\u5728\u3002\",\n        low: \"\u60a8\u5728\u793e\u4ea4\u4e92\u52d5\u65b9\u9762\u6709\u63d0\u5347\u7a7a\u9593\uff0c\u53ef\u80fd\u504f\u597d\u5c0f\u5708\u5b50\u4ea4\u6d41\u6216\u4e00\u5c0d\u4e00\u7684\u6df1\u5ea6\u4e92\u52d5\uff0c\u800c\u975e\u5927\u578b\u793e\u4ea4\u5834\u5408\u3002\"\n      },\n      emotional: {\n        title: \"\u60c5\u611f\u9023\u7d50\u529b\",\n        high: \"\u60a8\u975e\u5e38\u64c5\u9577\u7406\u89e3\u4ed6\u4eba\u60c5\u611f\uff0c\u8868\u73fe\u51fa\u771f\u8aa0\u7684\u95dc\u61f7\u8207\u540c\u7406\u5fc3\u3002\u60a8\u80fd\u5920\u5efa\u7acb\u6df1\u5ea6\u7684\u60c5\u611f\u9023\u7d50\uff0c\u8b93\u4ed6\u4eba\u611f\u5230\u88ab\u7406\u89e3\u548c\u652f\u6301\u3002\",\n        medium: \"\u60a8\u5177\u6709\u4e00\u5b9a\u7684\u60c5\u611f\u654f\u611f\u5ea6\uff0c\u80fd\u5920\u5bdf\u89ba\u4e26\u56de\u61c9\u4ed6\u4eba\u7684\u60c5\u7dd2\u9700\u6c42\uff0c\u4f46\u6709\u6642\u53ef\u80fd\u9700\u8981\u66f4\u6df1\u5165\u5730\u7406\u89e3\u8907\u96dc\u60c5\u611f\u3002\",\n        low: \"\u60a8\u5728\u60c5\u611f\u8868\u9054\u548c\u9023\u7d50\u65b9\u9762\u6709\u6210\u9577\u7a7a\u9593\uff0c\u53ef\u80fd\u66f4\u50be\u5411\u65bc\u7406\u6027\u601d\u8003\u800c\u975e\u60c5\u611f\u4ea4\u6d41\u3002\"\n      },\n      expression: {\n        title: \"\u8868\u9054\u80fd\u529b\",\n        high: \"\u60a8\u64c1\u6709\u51fa\u8272\u7684\u8a9e\u8a00\u8868\u9054\u80fd\u529b\uff0c\u80fd\u5920\u6e05\u6670\u3001\u6709\u529b\u5730\u50b3\u9054\u60f3\u6cd5\u548c\u60c5\u611f\u3002\u60a8\u7684\u6e9d\u901a\u98a8\u683c\u751f\u52d5\u6709\u8da3\uff0c\u80fd\u5920\u5438\u5f15\u4ed6\u4eba\u7684\u6ce8\u610f\u529b\u3002\",\n        medium: \"\u60a8\u5177\u6709\u826f\u597d\u7684\u8868\u9054\u80fd\u529b\uff0c\u80fd\u5920\u5728\u591a\u6578\u60c5\u6cc1\u4e0b\u6709\u6548\u6e9d\u901a\uff0c\u4f46\u5728\u67d0\u4e9b\u5834\u5408\u53ef\u80fd\u9700\u8981\u66f4\u7cbe\u6e96\u6216\u751f\u52d5\u7684\u8868\u9054\u3002\",\n        low: \"\u60a8\u5728\u8868\u9054\u60f3\u6cd5\u548c\u60c5\u611f\u65b9\u9762\u6709\u63d0\u5347\u7a7a\u9593\uff0c\u53ef\u80fd\u5076\u723e\u611f\u5230\u96e3\u4ee5\u6e96\u78ba\u50b3\u9054\u81ea\u5df1\u7684\u610f\u601d\u3002\"\n      },\n      confidence: {\n        title: \"\u81ea\u4fe1\u5c55\u73fe\",\n        high: \"\u60a8\u5c55\u73fe\u51fa\u5f37\u70c8\u7684\u81ea\u4fe1\u548c\u7a4d\u6975\u7684\u81ea\u6211\u5f62\u8c61\uff0c\u80fd\u5920\u5728\u5404\u7a2e\u5834\u5408\u5145\u5206\u5c55\u73fe\u81ea\u6211\u3002\u60a8\u7684\u81ea\u4fe1\u5177\u6709\u611f\u67d3\u529b\uff0c\u80fd\u5920\u5f71\u97ff\u4ed6\u4eba\u3002\",\n        medium: \"\u60a8\u5177\u6709\u9069\u5ea6\u7684\u81ea\u4fe1\uff0c\u5728\u719f\u6089\u7684\u9818\u57df\u80fd\u5920\u5c55\u73fe\u81ea\u6211\uff0c\u4f46\u5728\u67d0\u4e9b\u6311\u6230\u6027\u5834\u5408\u53ef\u80fd\u4ecd\u6709\u9867\u616e\u3002\",\n        low: \"\u60a8\u5728\u81ea\u4fe1\u5c55\u73fe\u65b9\u9762\u6709\u6210\u9577\u7a7a\u9593\uff0c\u53ef\u80fd\u5076\u723e\u61f7\u7591\u81ea\u5df1\u7684\u80fd\u529b\u6216\u50f9\u503c\uff0c\u5f71\u97ff\u9b45\u529b\u7684\u767c\u63ee\u3002\"\n      }\n    };\n    \n    \/\/ DOM\u5143\u7d20\n    const elements = {\n      container: document.getElementById('charmTestContainer'),\n      intro: document.getElementById('charmTestIntro'),\n      startBtn: document.getElementById('charmTestStartBtn'),\n      questions: document.getElementById('charmTestQuestions'),\n      progressBar: document.getElementById('charmTestProgressBar'),\n      progressText: document.getElementById('charmTestProgressText'),\n      questionCard: document.querySelector('.charm-test-questions .charm-test-card'),\n      prevBtn: document.getElementById('charmTestPrevBtn'),\n      result: document.getElementById('charmTestResult'),\n      totalScore: document.getElementById('charmTestTotalScore'),\n      resultSummary: document.getElementById('charmTestResultSummary'),\n      dimensions: document.getElementById('charmTestDimensions'),\n      radarChart: document.getElementById('charmTestRadarChart'),\n      restartBtn: document.getElementById('charmTestRestartBtn')\n    };\n    \n    \/\/ \u6e2c\u9a57\u72c0\u614b\n    const state = {\n      currentQuestion: 0,\n      answers: [],\n      dimensionScores: {\n        social: 0,\n        emotional: 0,\n        expression: 0,\n        confidence: 0\n      }\n    };\n    \n    \/**\n     * \u521d\u59cb\u5316\u6e2c\u9a57\n     *\/\n    function initTest() {\n      \/\/ \u78ba\u4fdd\u6240\u6709DOM\u5143\u7d20\u90fd\u5df2\u52a0\u8f09\n      if (elements.startBtn && elements.prevBtn && elements.restartBtn) {\n        \/\/ \u7d81\u5b9a\u4e8b\u4ef6\n        elements.startBtn.addEventListener('click', startTest);\n        elements.prevBtn.addEventListener('click', showPreviousQuestion);\n        elements.restartBtn.addEventListener('click', restartTest);\n        \n        \/\/ \u8a2d\u7f6e\u9ad8\u5ea6\uff0c\u9632\u6b62\u9801\u9762\u8df3\u52d5\n        setContainerMinHeight();\n      } else {\n        \/\/ \u5982\u679c\u5143\u7d20\u5c1a\u672a\u52a0\u8f09\uff0c\u7b49\u5f85\u4e00\u6bb5\u6642\u9593\u5f8c\u91cd\u8a66\n        console.log('DOM\u5143\u7d20\u5c1a\u672a\u5b8c\u5168\u52a0\u8f09\uff0c\u7b49\u5f85\u4e2d...');\n        setTimeout(initTest, 100);\n      }\n    }\n    \n    \/**\n     * \u8a2d\u7f6e\u5bb9\u5668\u6700\u5c0f\u9ad8\u5ea6\uff0c\u9632\u6b62\u9801\u9762\u8df3\u52d5\n     *\/\n    function setContainerMinHeight() {\n      \/\/ \u78ba\u4fdd\u5143\u7d20\u5b58\u5728\n      if (elements.intro && elements.container) {\n        const introHeight = elements.intro.offsetHeight;\n        elements.container.style.minHeight = `${introHeight}px`;\n      }\n    }\n    \n    \/**\n     * \u958b\u59cb\u6e2c\u9a57\n     *\/\n    function startTest() {\n      elements.intro.style.display = 'none';\n      elements.questions.style.display = 'block';\n      showQuestion(0);\n      scrollToTop();\n    }\n    \n    \/**\n     * \u986f\u793a\u6307\u5b9a\u984c\u76ee\n     * @param {number} index - \u984c\u76ee\u7d22\u5f15\n     *\/\n    function showQuestion(index) {\n      if (index < 0 || index >= questionsData.length) return;\n      \n      state.currentQuestion = index;\n      \n      \/\/ \u66f4\u65b0\u9032\u5ea6\u689d\n      const progress = ((index + 1) \/ questionsData.length) * 100;\n      elements.progressBar.style.width = `${progress}%`;\n      elements.progressText.textContent = `\u554f\u984c ${index + 1}\/${questionsData.length}`;\n      \n      \/\/ \u986f\u793a\/\u96b1\u85cf\u4e0a\u4e00\u984c\u6309\u9215\n      elements.prevBtn.style.display = index > 0 ? 'block' : 'none';\n      \n      \/\/ \u751f\u6210\u984c\u76ee\u5167\u5bb9\n      const question = questionsData[index];\n      let optionsHtml = '';\n      \n      question.options.forEach((option, optIndex) => {\n        const checked = state.answers[index] === optIndex ? 'checked' : '';\n        optionsHtml += `\n          <li class=\"${NS}-option\">\n            <input type=\"radio\" id=\"${NS}-q${index}-opt${optIndex}\" name=\"${NS}-q${index}\" value=\"${optIndex}\" ${checked}>\n            <label for=\"${NS}-q${index}-opt${optIndex}\">${option.text}<\/label>\n          <\/li>\n        `;\n      });\n      \n      elements.questionCard.innerHTML = `\n        <h3>${question.question}<\/h3>\n        <ul class=\"${NS}-options\">\n          ${optionsHtml}\n        <\/ul>\n      `;\n      \n      \/\/ \u7d81\u5b9a\u9078\u9805\u9ede\u64ca\u4e8b\u4ef6\n      const options = elements.questionCard.querySelectorAll(`.${NS}-option input`);\n      options.forEach(option => {\n        option.addEventListener('change', () => handleOptionSelect(index, parseInt(option.value)));\n      });\n    }\n    \n    \/**\n     * \u8655\u7406\u9078\u9805\u9078\u64c7\n     * @param {number} questionIndex - \u984c\u76ee\u7d22\u5f15\n     * @param {number} optionIndex - \u9078\u9805\u7d22\u5f15\n     *\/\n    function handleOptionSelect(questionIndex, optionIndex) {\n      \/\/ \u4fdd\u5b58\u7b54\u6848\n      state.answers[questionIndex] = optionIndex;\n      \n      \/\/ \u5ef6\u9072\u4e00\u4e0b\u5207\u63db\u5230\u4e0b\u4e00\u984c\uff0c\u8b93\u7528\u6236\u770b\u5230\u9078\u4e2d\u72c0\u614b\n      setTimeout(() => {\n        if (questionIndex < questionsData.length - 1) {\n          \/\/ \u986f\u793a\u4e0b\u4e00\u984c\n          showQuestion(questionIndex + 1);\n        } else {\n          \/\/ \u8a08\u7b97\u7d50\u679c\n          calculateResults();\n        }\n      }, 300);\n    }\n    \n    \/**\n     * \u986f\u793a\u4e0a\u4e00\u984c\n     *\/\n    function showPreviousQuestion() {\n      if (state.currentQuestion > 0) {\n        showQuestion(state.currentQuestion - 1);\n      }\n    }\n    \n    \/**\n     * \u8a08\u7b97\u6e2c\u9a57\u7d50\u679c\n     *\/\n    function calculateResults() {\n      \/\/ \u91cd\u7f6e\u5206\u6578\n      for (const dim in state.dimensionScores) {\n        state.dimensionScores[dim] = 0;\n      }\n      \n      \/\/ \u8a08\u7b97\u5404\u7dad\u5ea6\u5f97\u5206\n      state.answers.forEach((answerIndex, questionIndex) => {\n        if (answerIndex !== undefined) {\n          const selectedOption = questionsData[questionIndex].options[answerIndex];\n          const score = selectedOption.score;\n          \n          for (const dim in score) {\n            state.dimensionScores[dim] += score[dim];\n          }\n        }\n      });\n      \n      \/\/ \u8a08\u7b97\u7e3d\u5206\u548c\u5e73\u5747\u5206\n      let totalScore = 0;\n      let maxPossibleScore = 0;\n      for (const dim in state.dimensionScores) {\n        totalScore += state.dimensionScores[dim];\n        \/\/ \u5047\u8a2d\u6bcf\u500b\u7dad\u5ea6\u7684\u6eff\u5206\u70ba\u554f\u984c\u6578 * 5\uff08\u6bcf\u984c\u6700\u9ad85\u5206\uff09\n        maxPossibleScore += questionsData.length * 5;\n      }\n      \n      \/\/ \u8a08\u7b97\u767e\u5206\u6bd4\u5f97\u5206\n      const percentageScore = Math.round((totalScore \/ maxPossibleScore) * 100);\n      \n      \/\/ \u986f\u793a\u7d50\u679c\n      showResults(percentageScore);\n    }\n    \n    \/**\n     * \u986f\u793a\u6e2c\u9a57\u7d50\u679c\n     * @param {number} totalScore - \u7e3d\u5206\uff08\u767e\u5206\u6bd4\uff09\n     *\/\n    function showResults(totalScore) {\n      elements.questions.style.display = 'none';\n      elements.result.style.display = 'block';\n      \n      \/\/ \u8a2d\u7f6e\u7e3d\u5206\n      elements.totalScore.textContent = `\u60a8\u7684\u4eba\u969b\u9b45\u529b\u6307\u6578\uff1a${totalScore}\u5206`;\n      \n      \/\/ \u6839\u64da\u7e3d\u5206\u67e5\u627e\u76f8\u61c9\u89e3\u91cb\n      let resultData = null;\n      for (const result of resultInterpretations) {\n        if (totalScore >= result.range[0] && totalScore <= result.range[1]) {\n          resultData = result;\n          break;\n        }\n      }\n      \n      \/\/ \u986f\u793a\u7e3d\u9ad4\u8a55\u50f9\n      if (resultData) {\n        elements.resultSummary.innerHTML = `\n          <strong>${resultData.title}<\/strong>\uff1a${resultData.description}\n          <p><strong>\u63d0\u5347\u5efa\u8b70<\/strong>\uff1a${resultData.suggestions}<\/p>\n        `;\n      }\n      \n      \/\/ \u986f\u793a\u5404\u7dad\u5ea6\u5f97\u5206\u548c\u89e3\u91cb\n      let dimensionsHtml = '';\n      for (const dim in state.dimensionScores) {\n        \/\/ \u8a08\u7b97\u7dad\u5ea6\u5f97\u5206\u767e\u5206\u6bd4\uff08\u5047\u8a2d\u6bcf\u500b\u7dad\u5ea6\u6eff\u5206\u70ba\u554f\u984c\u6578 * 5\uff09\n        const maxScore = questionsData.length * 5;\n        const score = state.dimensionScores[dim];\n        const percentage = Math.round((score \/ maxScore) * 100);\n        \n        \/\/ \u7372\u53d6\u7dad\u5ea6\u5c0d\u61c9\u7684\u5716\u6a19\n        let dimensionIcon = '\u2728'; \/\/ \u9ed8\u8a8d\u5716\u6a19\n        \n        switch(dim) {\n          case 'social':\n            dimensionIcon = '\ud83d\udc65';\n            break;\n          case 'emotional':\n            dimensionIcon = '\u2764\ufe0f';\n            break;\n          case 'expression':\n            dimensionIcon = '\ud83d\udde3\ufe0f';\n            break;\n          case 'confidence':\n            dimensionIcon = '\u2728';\n            break;\n        }\n        \n        \/\/ \u5224\u65b7\u9ad8\u4e2d\u4f4e\u8a55\u50f9\n        let interpretation = '';\n        let levelClass = '';\n        \n        if (percentage >= 75) {\n          interpretation = dimensionInterpretations[dim].high;\n          levelClass = 'high';\n        } else if (percentage >= 50) {\n          interpretation = dimensionInterpretations[dim].medium;\n          levelClass = 'medium';\n        } else {\n          interpretation = dimensionInterpretations[dim].low;\n          levelClass = 'low';\n        }\n        \n        dimensionsHtml += `\n          <div class=\"${NS}-dimension ${NS}-dimension-${levelClass}\">\n            <h3>${dimensionIcon} ${dimensionInterpretations[dim].title}<\/h3>\n            <div class=\"${NS}-dimension-score\">${percentage}%<\/div>\n            <p>${interpretation}<\/p>\n          <\/div>\n        `;\n      }\n      elements.dimensions.innerHTML = dimensionsHtml;\n      \n      \/\/ \u5275\u5efa\u96f7\u9054\u5716\n      createRadarChart();\n      \n      \/\/ \u6efe\u52d5\u5230\u9802\u90e8\n      scrollToTop();\n    }\n    \n    \/**\n     * \u5275\u5efa\u96f7\u9054\u5716\n     *\/\n    function createRadarChart() {\n      \/\/ \u6e96\u5099\u96f7\u9054\u5716\u6578\u64da\n      const labels = [];\n      const data = [];\n      \n      for (const dim in state.dimensionScores) {\n        labels.push(dimensionInterpretations[dim].title);\n        \n        \/\/ \u8a08\u7b97\u7dad\u5ea6\u5f97\u5206\u767e\u5206\u6bd4\n        const maxScore = questionsData.length * 5;\n        const score = state.dimensionScores[dim];\n        const percentage = Math.round((score \/ maxScore) * 100);\n        \n        data.push(percentage);\n      }\n      \n      \/\/ \u5275\u5efa\u96f7\u9054\u5716\n      if (window.radarChart) {\n        window.radarChart.destroy();\n      }\n      \n      window.radarChart = new Chart(elements.radarChart, {\n        type: 'radar',\n        data: {\n          labels: labels,\n          datasets: [{\n            label: '\u60a8\u7684\u5f97\u5206',\n            data: data,\n            backgroundColor: 'rgba(79, 109, 245, 0.3)',\n            borderColor: 'rgba(79, 109, 245, 0.8)',\n            pointBackgroundColor: 'rgba(79, 109, 245, 1)',\n            pointBorderColor: '#fff',\n            pointHoverBackgroundColor: '#fff',\n            pointHoverBorderColor: 'rgba(79, 109, 245, 1)',\n            pointRadius: 5,\n            pointHoverRadius: 7,\n            borderWidth: 2\n          }]\n        },\n        options: {\n          scales: {\n            r: {\n              beginAtZero: true,\n              max: 100,\n              ticks: {\n                display: false\n              },\n              angleLines: {\n                color: 'rgba(79, 109, 245, 0.2)'\n              },\n              grid: {\n                color: 'rgba(79, 109, 245, 0.1)'\n              },\n              pointLabels: {\n                font: {\n                  size: 18,\n                  weight: 'bold'\n                },\n                color: 'var(--primary-dark)'\n              }\n            }\n          },\n          plugins: {\n            legend: {\n              display: false\n            },\n            tooltip: {\n              backgroundColor: 'rgba(79, 109, 245, 0.9)',\n              titleFont: {\n                size: 16,\n                weight: 'bold'\n              },\n              bodyFont: {\n                size: 14\n              },\n              padding: 12,\n              callbacks: {\n                label: function(context) {\n                  return `${context.label}: ${context.raw}%`;\n                }\n              }\n            }\n          },\n          maintainAspectRatio: false\n        }\n      });\n    }\n    \n    \/**\n     * \u91cd\u65b0\u958b\u59cb\u6e2c\u9a57\n     *\/\n    function restartTest() {\n      \/\/ \u91cd\u7f6e\u72c0\u614b\n      state.currentQuestion = 0;\n      state.answers = [];\n      for (const dim in state.dimensionScores) {\n        state.dimensionScores[dim] = 0;\n      }\n      \n      \/\/ \u91cd\u7f6eUI\n      elements.result.style.display = 'none';\n      elements.intro.style.display = 'block';\n      \n      \/\/ \u6efe\u52d5\u5230\u9802\u90e8\n      scrollToTop();\n    }\n    \n    \/**\n     * \u6efe\u52d5\u5230\u9802\u90e8\n     *\/\n    function scrollToTop() {\n      const targetPosition = elements.container.offsetTop - 20;\n      window.scrollTo({\n        top: targetPosition,\n        behavior: 'smooth'\n      });\n    }\n    \n    \/\/ \u521d\u59cb\u5316\u6e2c\u9a57\n    initTest();\n    \n    \/\/ \u9632\u6b62\u9801\u9762\u52a0\u8f09\u6642\u51fa\u73fe\u9583\u720d\n    window.addEventListener('load', () => {\n      if (elements.container) {\n        elements.container.style.opacity = 1;\n      }\n    });\n    \n    \/\/ \u8655\u7406\u8996\u7a97\u5927\u5c0f\u6539\u8b8a\uff0c\u78ba\u4fdd\u5bb9\u5668\u9ad8\u5ea6\u9069\u61c9\u5167\u5bb9\n    window.addEventListener('resize', setContainerMinHeight);\n    \n    \/\/ \u7bc0\u6d41\u51fd\u6578\uff0c\u7528\u65bc\u8655\u7406\u6efe\u52d5\u7b49\u9ad8\u983b\u4e8b\u4ef6\n    function throttle(func, delay) {\n      let lastCall = 0;\n      return function(...args) {\n        const now = new Date().getTime();\n        if (now - lastCall < delay) {\n          return;\n        }\n        lastCall = now;\n        return func(...args);\n      };\n    }\n    \n    \/\/ \u4f7f\u7528\u7bc0\u6d41\u8655\u7406\u6efe\u52d5\u4e8b\u4ef6\n    window.addEventListener('scroll', throttle(() => {\n      \/\/ \u53ef\u4ee5\u6dfb\u52a0\u6efe\u52d5\u76f8\u95dc\u7684\u908f\u8f2f\n    }, 100));\n    \n    } \/\/ \u7d50\u675finitModule\u51fd\u6578\n  })();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>\u4e00\u4e2a\u4eba\u7684\u9b45\u529b\u4e0e\u5176\u60c5\u611f\u80fd\u529b\u4e0e\u793e\u4ea4\u80fd\u529b\u6709\u5f88\u5927\u7684\u5173\u7cfb\u3002\u5f88\u591a\u4eba\u90fd\u8ba4\u4e3a\u9b45\u529b\u662f\u4e0a\u5929\u7ed9\u4e00\u5c0f\u90e8\u5206\u5e78\u8fd0\u7684\u4eba\u7684\u7279\u6b8a\u9988\u8d60\u3002\u7136\u800c\uff0c\u5173\u4e8e\u9b45\u529b\u7684\u8c03\u67e5\u7814\u7a76\u8868\u660e\uff0c\u4e00\u4e2a\u4eba\u7684\u9b45\u529b\u662f\u53ef\u4ee5\u88ab\u6d4b\u91cf\u7684\uff0c\u4e14\u6709\u4e00\u4e9b\u57fa\u672c\u56e0\u7d20\u662f\uff0c\u8fd9\u4e9b\u56e0\u7d20\u88ab\u7edf\u79f0\u4e3a\u201c\u9b45\u529b\u5546\u6570\u201d\u3002\u60f3\u77e5\u9053\u4f60\u5728\u4e0e\u4eba\u4ea4\u5f80\u65f6\u80fd\u591f\u5c55\u73b0\u51fa\u81ea\u5df1\u7684\u591a\u5c11\u9b45\u529b\u5417\uff1f\u6d4b\u6d4b\u770b\u5427\uff01<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","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":[175,167],"tags":[],"class_list":["post-9258","post","type-post","status-publish","format-standard","hentry","category-relationships","category-personality"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/comments?post=9258"}],"version-history":[{"count":9,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9258\/revisions"}],"predecessor-version":[{"id":10049,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9258\/revisions\/10049"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=9258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=9258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=9258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}